对于源码分析,我们先还是从最外层域用户交互这一块开始,看到源码里面有一个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源码分析——andricoFacebook客户端】 在深入解析安卓Android源码——andricoFacebook客户端之前,首先要理解Android操作系统的基本架构。Android是一个基于Linux内核的开源移动操作系统,它为开发者提供...
不过,由于Facebook的源码并不公开,这份"Android源码——Facebook客户端.zip"可能是社区的逆向工程或者模拟实现,实际内容可能与真实Facebook客户端有所差异。真正的学习和理解仍需结合官方文档和最佳实践。
这是我的博客:jQuery作前台,Python3-Flask作后端的全栈开发——数据交互方式 https://blog.csdn.net/winerchopin/article/details/87886777#comments 讲解使用胡代码1
"IOS应用源码——新闻客户端应用.zip" 提供了一个完整的iOS新闻客户端应用的源代码,这对于iOS开发者,尤其是初学者来说,是一个宝贵的参考资料。这个压缩包包含了一个实际运行在iOS设备上的新闻阅读应用的所有组件...
在Wireshark数据包分析实战第三版中,我们聚焦于一个特定的问题——客户端延迟,这在通信缓慢的场景中是一个常见的挑战。通过分析一个名为"latency3.pcap"的捕获文件,我们可以深入理解这一现象。在图11-24所示的...
《安卓Android源码——微博客户端源代码》是一个深入学习安卓应用开发的重要资源,它提供了微博客户端的完整源代码,让开发者能够直接查看、分析并学习其中的实现细节。这个源码包主要涵盖了以下几个核心知识点: 1...
【安卓Android源码——经典源码之博客园客户端】 这篇解析将深入探讨安卓Android源码中的博客园客户端应用。博客园客户端是安卓平台上一个流行的开源项目,它为开发者提供了研究和学习Android应用开发的宝贵资源。...
本文将围绕“Android源码——饭否客户端源码.zip”这一主题,深入探讨Android应用程序的开发流程,以及如何通过源码分析提升开发技能。 饭否客户端是一款基于Android平台的社交应用,它的源码为我们提供了宝贵的...
【Android源码——腾讯微博客户端源码.zip】这个压缩包主要包含的是腾讯微博客户端的源代码,对于Android开发者来说,这是一个宝贵的参考资料。通过研究这份源码,开发者可以深入理解一个大型社交应用在Android平台...
【Android源码解析——EOE论坛客户端】 在深入探讨EOE论坛客户端的Android源码之前,我们首先要理解Android操作系统的基本架构。Android是一个基于Linux内核的开源操作系统,主要用于移动设备,如智能手机和平板...
这篇文档将深入解析“安卓Android源码——简易微信客户端和服务器源码.rar”这个压缩包中的内容,重点关注安卓开发和微信客户端与服务器交互的基础知识。首先,我们可以看到压缩包包含了两个重要的子文件:“client....
这篇文档将深入解析《安卓Android源码——合肥工业大学客户端源码》的相关知识点,主要涵盖安卓应用开发、Android源码分析以及可能涉及的特定项目实践。 首先,安卓(Android)是Google主导开发的一种开源操作系统...
这个压缩包“IOS应用源码——wordpress ios客户端最新源码.rar”包含的是一个针对WordPress平台的iOS客户端应用的源代码,这为我们提供了一个学习和理解如何在iOS上实现WordPress集成的宝贵资源。 首先,我们要了解...
在移动互联网时代,电话客户端作为用户接触信息和服务的重要入口,其交互体验直接关系到...通过本文的分析和讨论,我们希望为电话客户端的交互适配设计提供一些参考和启发,以期待未来能够出现更多令人满意的移动应用。
《安卓Android源码——饭否网两种安卓客户端源码》 在移动开发领域,安卓(Android)作为全球最大的智能手机操作系统,其源码分析是开发者深入理解系统运行机制、提升编程技能的重要途径。本资料包“安卓Android...
在Java编程中,服务器端和客户端的交互是网络应用程序的核心部分。这个实例展示了如何通过Java实现这一过程。在这个实例中,我们有两个主要组件:服务器端(Server)和客户端(Client)。下面将详细介绍这两个组件...
总的来说,通过分析“Android源码——简单的人人网客户端源码”,我们可以学习到Android应用开发的各个核心模块,包括UI设计、网络通信、数据存储、组件交互等多个方面,这对于提升个人的Android开发能力大有裨益。...