`
yucang52555
  • 浏览: 71077 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

elastciSearch源码分析——客户端交互模块

阅读更多
   对于源码分析,我们先还是从最外层域用户交互这一块开始,看到源码里面有一个client(客户端)的包:

点开查看详细类文件结构:

   首先我们可以看到AdminClient接口,里面提供两个方法:
1) cluster(),产生一个允许从集群中执行action或操作的client;
2) indices(),产生一个允许从索引中执行action或操作的client。
   查看树结构关联:

   可以看出,AdminClient接口有两个实现类,分别为org.elasticsearch.client.AdminClient.NodeAdminClient和org.elasticsearch.client.transport.support.InternalTransportAdminClient。
   NodeAdminClient有一个带有@Inject注解的构造器,并实现了接口AdminClient的两个方法。@Inject导致了一个直接的后果:你只能通过被@Inject标注的构造器生成实例。indices()和cluster()覆盖了AdminClient的同名方法,分别返回NodeIndicesAdminClient和NodeClusterAdminClient对象。
NodeAdminClient会继承父类org.elasticsearch.common.component.AbstractComponent的nodeName()方法用以获取当前节点的名称。
     org.elasticsearch.client.transport.support.InternalTransportAdminClient类
InternalTransportAdminClient其实与NodeAdminClient类似,只是它的indices()和cluster()分别返回的是InternalTransportIndicesAdminClient和InternalTransportClusterAdminClient。
NodeAdminClient和InternalTransportAdminClient均没有子类,所以只有当我们需要用到NodeIndicesAdminClient、NodeClusterAdminClient、InternalTransportIndicesAdminClient或InternalTransportClusterAdminClient时,才考虑创建这两个类的实体。

     此外,org.elasticsearch.client.Client接口为从集群中执行action或operation提供了一站式接口,这里的所有操作都是自然而然地异步执行的,每个action或operation都有两种风格,一种是简单地返回一个org.elasticsearch.action.ActionFuture,另一种是访问一个org.elasticsearch.action.ActionListener。你可以在org.elasticsearch.node.Node启动时取得一个Client,也可以使用org.elasticsearch.client.transport.TransportClient远程连接一个或多个节点。


程序猿行业技术生活交流群:181287753(指尖天下),欢迎大伙加入交流学习。
  • 大小: 205.3 KB
  • 大小: 9.8 KB
  • 大小: 20.5 KB
  • 大小: 21.3 KB
分享到:
评论

相关推荐

    安卓Android源码——客户端连接服务器并交互实例.zip

    这个"安卓Android源码——客户端连接服务器并交互实例.zip"压缩包提供了实现这一功能的示例代码,帮助开发者理解和掌握如何在Android应用中实现网络通信。下面我们将详细探讨这一主题。 1. **TCP/HTTP通信基础**: ...

    Android源码——Facebook客户端.zip

    不过,由于Facebook的源码并不公开,这份"Android源码——Facebook客户端.zip"可能是社区的逆向工程或者模拟实现,实际内容可能与真实Facebook客户端有所差异。真正的学习和理解仍需结合官方文档和最佳实践。

    redis分布式 —— 客户端库tinyredis1

    《Redis分布式——客户端库tinyredis1详解》 在分布式系统中,Redis作为一种高性能的键值存储服务,常被用来构建高效的数据存储和缓存解决方案。本文将重点介绍一种名为tinyredis的客户端库,它是实现Redis分布式...

    安卓Android源码——微博客户端源代码.zip

    "安卓Android源码——微博客户端源代码.zip"这个标题表明我们讨论的是一个与Android操作系统相关的项目,具体来说是微博客户端的应用程序源代码。这通常意味着我们可以深入理解如何在Android平台上构建一个社交媒体...

    jQuery作前台,Python3-Flask作后端的全栈开发——数据交互方式(项目代码)

    这是我的博客:jQuery作前台,Python3-Flask作后端的全栈开发——数据交互方式 https://blog.csdn.net/winerchopin/article/details/87886777#comments 讲解使用胡代码1

    11.4.3 通信缓慢——客户端延迟 - Wireshark 数据包分析实战(第 3 版) - 知乎书店1

    在Wireshark数据包分析实战第三版中,我们聚焦于一个特定的问题——客户端延迟,这在通信缓慢的场景中是一个常见的挑战。通过分析一个名为"latency3.pcap"的捕获文件,我们可以深入理解这一现象。在图11-24所示的...

    安卓Android源码——SipDroid客户端源码.rar

    通过对SipDroid源码的分析,我们可以了解到如何在Android平台上实现一个完整的VoIP客户端。这不仅涵盖了SIP协议的实现,还包括了Android系统级的接口使用、事件处理、UI设计等多个方面,对于开发者来说,是一份宝贵...

    asp.net中TextBox获得焦点和失去焦点——客户端JavaScript事件

    总结来说,ASP.NET中的TextBox可以通过JavaScript的`focus`和`blur`事件实现丰富的客户端交互。这些事件允许我们在用户开始输入时执行预处理,而在用户离开文本框时执行后处理,从而提升用户体验并实现动态验证等...

    安卓Android源码——精典源码之博客园客户端.zip

    【安卓Android源码——经典源码之博客园客户端】 这篇解析将深入探讨安卓Android源码中的博客园客户端应用。博客园客户端是安卓平台上一个流行的开源项目,它为开发者提供了研究和学习Android应用开发的宝贵资源。...

    Android源码——饭否客户端源码.zip

    本文将围绕“Android源码——饭否客户端源码.zip”这一主题,深入探讨Android应用程序的开发流程,以及如何通过源码分析提升开发技能。 饭否客户端是一款基于Android平台的社交应用,它的源码为我们提供了宝贵的...

    Android源码——豆瓣手机客户端源码.7z

    本篇将基于"Android源码——豆瓣手机客户端源码.7z"这一资源,深入探讨Android开发中的核心概念与技术,通过解析豆瓣手机客户端的源码,来揭示Android应用的构建之道。 首先,我们要理解Android应用程序的基本架构...

    Android源码——腾讯微博客户端源码.zip

    【Android源码——腾讯微博客户端源码.zip】这个压缩包主要包含的是腾讯微博客户端的源代码,对于Android开发者来说,这是一个宝贵的参考资料。通过研究这份源码,开发者可以深入理解一个大型社交应用在Android平台...

    安卓Android源码——精典源码之微博客户端源代码.zip

    "安卓Android源码——精典源码之微博客户端源代码.zip" 提供了一个学习和研究的宝贵资源,让我们有机会剖析一个实际运行的微博客户端应用程序。这个压缩包包含了一个名为 "复件 weiboSina" 的文件,我们可以从中提取...

    安卓Android源码——EOE论坛客户端.zip

    【Android源码解析——EOE论坛客户端】 在深入探索安卓Android源码——EOE论坛客户端的过程中,我们将深入了解安卓应用开发的各个方面,包括UI设计、网络通信、数据存储、多线程处理以及性能优化等关键知识点。 1....

    Android源码——仿QQ客户端及服务端源码.zip

    《Android源码——仿QQ客户端及服务端源码》是一个针对Android平台的开源项目,旨在模仿QQ客户端和服务端的功能和架构。这个项目对于学习和理解Android应用开发,特别是即时通讯应用的实现,提供了宝贵的参考资料。 ...

    Android源码——腾讯微博客户端源码.7z

    本文将围绕“Android源码——腾讯微博客户端源码.7z”这一主题,详细探讨其中的关键知识点,旨在帮助读者掌握Android开发中的核心技术和最佳实践。 首先,我们要了解Android应用的基本架构。一个标准的Android应用...

    安卓Android源码——安卓手写签名模块源码.zip

    这个压缩包文件"安卓Android源码——安卓手写签名模块源码.zip"包含了实现这一功能的相关源代码和其他资源文件,可能是为了帮助开发者理解和构建自己的手写签名组件。 手写签名模块的核心通常涉及以下几个关键技术...

    安卓Android源码——合肥工业大学客户端源码.zip

    这篇文档将深入解析《安卓Android源码——合肥工业大学客户端源码》的相关知识点,主要涵盖安卓应用开发、Android源码分析以及可能涉及的特定项目实践。 首先,安卓(Android)是Google主导开发的一种开源操作系统...

    电话客户端交互适配设计之——我见.pdf

    在移动互联网时代,电话客户端作为用户接触信息和服务的重要入口,其交互体验直接关系到...通过本文的分析和讨论,我们希望为电话客户端的交互适配设计提供一些参考和启发,以期待未来能够出现更多令人满意的移动应用。

Global site tag (gtag.js) - Google Analytics