对于源码分析,我们先还是从最外层域用户交互这一块开始,看到源码里面有一个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"文件,将帮助我们深入理解这一过程。下面我们将详细探讨相关的知识点。 1. **网络通信基础**: - 客户端-服务器模型:在Android应用中,客户端...
【Android源码分析——andricoFacebook客户端】 在深入解析安卓Android源码——andricoFacebook客户端之前,首先要理解Android操作系统的基本架构。Android是一个基于Linux内核的开源移动操作系统,它为开发者提供...
【安卓Android源码——Facebook客户端.zip】是一个包含Facebook客户端源代码的压缩文件,这对于学习和研究Android应用开发,特别是社交应用的实现具有重要的价值。在这个压缩包中,开发者可以深入理解Facebook应用...
### 嵌入式浏览器的源码分析——总体设计与HTML解析 #### 一、嵌入式浏览器的现状与发展 随着信息技术的飞速发展,嵌入式产品在人们的日常生活中扮演着越来越重要的角色。特别是在互联网普及之后,对于嵌入式设备...
淘宝客户端源码的结构通常是模块化的,每个功能模块都有独立的代码库,如网络通信模块、UI模块、数据存储模块等。这种设计有利于代码的维护和复用,也有助于团队协作。学习源码时,可以关注主工程如何管理和协调各个...
不过,由于Facebook的源码并不公开,这份"Android源码——Facebook客户端.zip"可能是社区的逆向工程或者模拟实现,实际内容可能与真实Facebook客户端有所差异。真正的学习和理解仍需结合官方文档和最佳实践。
【安卓Android源码——网易客户端源码.zip】这个压缩包包含的是安卓平台上的网易客户端应用的源代码。这个源码库对于安卓开发者来说是一个宝贵的资源,可以深入理解一个大型应用的架构设计、功能实现以及优化策略。...
《深入剖析Android源码——以博客园客户端为例》 Android作为一个开源的操作系统,其源码是开发者探索移动应用开发的宝库。博客园客户端作为一款广受欢迎的应用,其源码同样蕴含了丰富的Android开发知识。本文将从...
微信小程序——交互操作控件(截图+源码).zip 微信小程序——交互操作控件(截图+源码).zip 微信小程序——交互操作控件(截图+源码).zip 微信小程序——交互操作控件(截图+源码).zip 微信小程序——交互操作...
"安卓Android源码——微博客户端源代码.zip"这个标题表明我们讨论的是一个与Android操作系统相关的项目,具体来说是微博客户端的应用程序源代码。这通常意味着我们可以深入理解如何在Android平台上构建一个社交媒体...
"IOS应用源码——新闻客户端应用.zip" 提供了一个完整的iOS新闻客户端应用的源代码,这对于iOS开发者,尤其是初学者来说,是一个宝贵的参考资料。这个压缩包包含了一个实际运行在iOS设备上的新闻阅读应用的所有组件...
1. 客户端:基于Android操作系统的智能家居客户端,负责与家居设备交互,收集家居设备的信息和数字视频,并将其传输到云服务器上。 2. 云服务器:阿里云服务器,负责存储和处理家居设备的信息和数字视频,并提供...
总之,分析SipDroid客户端源码不仅能够帮助我们掌握Android应用开发的基本技能,还能深入了解SIP通信协议的实现细节。通过研究源码,开发者可以提升自己的VoIP应用开发能力,同时也能为其他类型的网络通信项目提供...
SipDroid源码的分析有助于开发者理解如何在Android系统上实现P2P通信,以及如何与SIP(Session Initiation Protocol)服务器交互。本文将深入探讨SipDroid客户端的源码,揭示其核心功能和设计原理。 一、SIP协议...
总的来说,分析Xabber客户端的源码,不仅能帮助我们深入理解Android应用开发的各个方面,包括架构设计、协议实现、UI布局、服务管理以及数据存储等,还能让我们接触到实际项目中可能遇到的问题和解决方案,对于提升...
通过对SipDroid源码的分析,我们可以了解到如何在Android平台上实现一个完整的VoIP客户端。这不仅涵盖了SIP协议的实现,还包括了Android系统级的接口使用、事件处理、UI设计等多个方面,对于开发者来说,是一份宝贵...