`
yucang52555
  • 浏览: 70567 次
  • 性别: 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通信基础**: ...

    安卓Andriod源码——客户端文档及demo_(20130328).zip

    "安卓Andriod源码——客户端文档及demo_(20130328).zip" 提供了一个早期版本的Android源码以及相关的客户端文档和示例代码,这对于开发者深入学习Android平台的内部工作原理和客户端应用开发具有重要意义。...

    Android源码——网易客户端源码.7z

    "Android源码——网易客户端源码.7z" 提供了这样的宝贵资源,让我们有机会一窥网易客户端背后的实现细节。这份源码不仅能够帮助开发者了解大型应用的设计模式和最佳实践,还能够加深对Android系统运行机制的理解。 ...

    安卓Android源码——Oschina客户端.zip

    【Android源码解析——Oschina客户端】 在深入解析安卓Android源码——Oschina客户端之前,我们首先要了解Android系统的基本架构。Android是一个开源的操作系统,主要由Linux内核、库层、应用框架以及应用程序四大...

    安卓Android源码——andricoFacebook客户端.zip

    《安卓Android源码解析——深度探索andricoFacebook客户端》 在移动开发领域,安卓Android作为全球最广泛使用的操作系统之一,其源码分析是开发者提升技能、深入理解系统运行机制的重要途径。本篇文章将聚焦于...

    Android源码——淘宝客户端源码.zip

    淘宝客户端源码的结构通常是模块化的,每个功能模块都有独立的代码库,如网络通信模块、UI模块、数据存储模块等。这种设计有利于代码的维护和复用,也有助于团队协作。学习源码时,可以关注主工程如何管理和协调各个...

    Android源码——Facebook客户端.zip

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

    安卓Android源码——网易客户端源码.zip

    【安卓Android源码——网易客户端源码.zip】这个压缩包包含的是安卓平台上的网易客户端应用的源代码。这个源码库对于安卓开发者来说是一个宝贵的资源,可以深入理解一个大型应用的架构设计、功能实现以及优化策略。...

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

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

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

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

    Android源码——SipDroid客户端源码.7z

    总之,分析SipDroid客户端源码不仅能够帮助我们掌握Android应用开发的基本技能,还能深入了解SIP通信协议的实现细节。通过研究源码,开发者可以提升自己的VoIP应用开发能力,同时也能为其他类型的网络通信项目提供...

    Android源码——SipDroid客户端源码.zip

    SipDroid源码的分析有助于开发者理解如何在Android系统上实现P2P通信,以及如何与SIP(Session Initiation Protocol)服务器交互。本文将深入探讨SipDroid客户端的源码,揭示其核心功能和设计原理。 一、SIP协议...

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

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

    PHP人才房产类网站实例开发源码——phpcms房产模块.zip

    本资源"PHP人才房产类网站实例开发源码——phpcms房产模块.zip"提供了一个基于PHP的房产类网站开发实例,其中的核心是phpcms2007的房产模块。phpcms是一款功能强大的内容管理系统,它允许开发者快速搭建和管理网站,...

    ASP.NET源码——电子邮件模块发送接收源码.zip

    这个压缩包"ASP.NET源码——电子邮件模块发送接收源码.zip"包含了一个电子邮件模块的源代码,可以帮助开发者学习和理解如何在ASP.NET环境中实现邮件的发送和接收功能。 在ASP.NET中,发送电子邮件主要依赖于System...

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

    《深入剖析Android源码——以饭否客户端为例》 Android作为全球最受欢迎的移动操作系统,其源码对于开发者来说,既是挑战也是宝藏。本篇将基于"Android源码——饭否客户端源码.zip"这一资源,深入探讨Android源码在...

    安卓Android源码——eoe社区客户端.zip

    【Android源码解析——以eoe社区客户端为例】 在安卓应用开发中,深入理解源码是提升技术能力的重要途径。本资源"安卓Android源码——eoe社区客户端.zip"提供了eoe社区的客户端源码,这为我们研究Android应用的架构...

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

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

    安卓Android源码——口袋微博服务器客户端代码.rar

    这篇文档将深入解析《安卓Android源码——口袋微博服务器客户端代码》的相关知识点,主要围绕安卓应用开发、源码分析以及服务器客户端交互等方面进行探讨。在Android平台上开发应用程序,理解源码是提升技能的关键,...

Global site tag (gtag.js) - Google Analytics