`
yucang52555
  • 浏览: 70038 次
  • 性别: 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源码——andricoFacebook客户端.zip

    《深入剖析Android源码——以andricoFacebook客户端为例》 Android作为全球最受欢迎的移动操作系统,其源码一直是开发者研究和学习的重要对象。本篇将基于"andricoFacebook客户端"这一项目,深入探讨Android源码中...

    嵌入式浏览器的源码分析——总体设计与HTML解析

    ### 嵌入式浏览器的源码分析——总体设计与HTML解析 #### 一、嵌入式浏览器的现状与发展 随着信息技术的飞速发展,嵌入式产品在人们的日常生活中扮演着越来越重要的角色。特别是在互联网普及之后,对于嵌入式设备...

    redis分布式 —— 客户端库tinyredis1

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

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

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

    基于android的智能家居系统设计——客户端及云服务器的实现毕设毕业论文.doc

    1. 客户端:基于Android操作系统的智能家居客户端,负责与家居设备交互,收集家居设备的信息和数字视频,并将其传输到云服务器上。 2. 云服务器:阿里云服务器,负责存储和处理家居设备的信息和数字视频,并提供...

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

    总的来说,分析Xabber客户端的源码,不仅能帮助我们深入理解Android应用开发的各个方面,包括架构设计、协议实现、UI布局、服务管理以及数据存储等,还能让我们接触到实际项目中可能遇到的问题和解决方案,对于提升...

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

    《深入解析Android SipDroid客户端源码》 在Android平台中,SipDroid是一款开源的VoIP(Voice over Internet Protocol)客户端,它利用了SIP(Session Initiation Protocol)协议来实现网络电话功能。SipDroid的...

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

    本压缩包"ASP.NET源码——电子邮件模块发送接收源码.zip"包含了电子邮件模块的源代码,这对于学习和理解如何在ASP.NET环境中实现邮件的发送和接收至关重要。 在ASP.NET中,发送电子邮件通常涉及到System.Net.Mail...

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

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

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

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

    安卓Android源码——与js交互.zip

    总之,“安卓Android源码——与js交互.zip”这个项目应该包含了实现Android与JavaScript交互的实例,你可以通过学习和分析这个项目,更好地理解和掌握这一技术。在实际开发中,这种交互方式对于增强应用的功能性和...

    Linux环境下C语言Socket编程——客户端向服务端单次发送一个或多个文件的功能

    网上很多有关socket文件传输的源码都是每次只能发送一个文件,如果想传输多个文件,不但需要多次交互,还需要把每个文件的文件名都输入进去,很不方便,所以进行了一个小扩展:即客户端可以将打算传送的多个文件都先...

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

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

    安卓Android源码——简易微信客户端和服务器源码.rar

    这篇文档将深入解析“安卓Android源码——简易微信客户端和服务器源码.rar”这个压缩包中的内容,重点关注安卓开发和微信客户端与服务器交互的基础知识。首先,我们可以看到压缩包包含了两个重要的子文件:“client....

    VC++与JS交互(源码)——百度地图

    本项目"VC++与JS交互(源码)——百度地图"就提供了这样一个解决方案,它专注于在VC++应用中嵌入并控制百度地图API。 首先,我们要理解这个项目的核心:JavaScript与C++的交互。在传统的Web浏览器环境中,...

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

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

    安卓Android源码——豆瓣手机客户端源码.zip

    【安卓Android源码——豆瓣手机客户端源码.zip】是一个包含有安卓应用开发的源代码,主要涉及的是针对豆瓣平台的移动应用。这个压缩包里包含了实现豆瓣手机客户端功能的全部源代码,对于学习和理解安卓应用开发,...

    视频直播社交产品原型源文件,主播产品客户端交互详细原型

    视频直播社交产品原型源文件,主播产品客户端交互详细原型,直播产品原型,社交产品原型,主播产品原型,播客产品原型,安卓客户端产品原型,IOS产品原型,小程序产品原型 社交,直播,语音产品原型 视频直播社交...

    近距离的美好——近场交互及应用

    近距离的设备和设备之间的一种交互方式。设备包括:移动设备、计算机、投影仪、打印机、电视、刷卡机等等移动商务和家庭误乐电子设备。而随着近场通讯技术的发展,越来越多的应用在我们的电子设备当中,让我们的近场...

Global site tag (gtag.js) - Google Analytics