ElasticSearch 2.4.0系列之二 java 创建client客户端
2017-07-28 16:14
597 查看
Elasticsearch为Java用户提供了两种内置客户端:
节点客户端(node client)
节点客户端以无数据节点(none data node)身份加入集群, 换言之, 它自己不存储任何数据, 但是它知道数据在集群中的具
体位置, 并且能够直接转发请求到对应的节点上。
传输客户端(Transport client)
这个更轻量的传输客户端能够发送请求到远程集群。 它自己不加入集群, 只是简单转发请求给集群中的节点。
两个Java客户端都通过9300端口与集群交互, 使用Elasticsearch传输协议(Elasticsearch Transport Protocol)。 集群中的节点
之间也通过9300端口进行通信。 如果此端口未开放, 你的节点将不能组成集群。
区别:
1.节点客户端会创建一个节点加入集群,而传输客户端不会
2.节点客户端使用一个client客户端,而传输客户端会获取所有节点的client客户端,然后遍历可用的client客户端
3.传输客户端会产生双跳问题,例如,如果此时使用的是node1创建的client,而要查询的数据在node2上,那么client会先将请求发送到node1,然后再转发到node2上请求数据。节点客户
4000
端不会产生该问题,它会直接将请求发送到node2
节点客户端(node client)的创建方式:
传输客户端(Transport client)的创建方式:
// 创建配置对象 myClusterName处为es集群名称
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "myClusterName").build();
// 创建客户端 host1,host2处为es集群节点的ip地址
TransportClient client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("host1"), 9300))
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("host2"), 9300));
参考书籍:
ElasticSearch权威指南
节点客户端(node client)
节点客户端以无数据节点(none data node)身份加入集群, 换言之, 它自己不存储任何数据, 但是它知道数据在集群中的具
体位置, 并且能够直接转发请求到对应的节点上。
传输客户端(Transport client)
这个更轻量的传输客户端能够发送请求到远程集群。 它自己不加入集群, 只是简单转发请求给集群中的节点。
两个Java客户端都通过9300端口与集群交互, 使用Elasticsearch传输协议(Elasticsearch Transport Protocol)。 集群中的节点
之间也通过9300端口进行通信。 如果此端口未开放, 你的节点将不能组成集群。
区别:
1.节点客户端会创建一个节点加入集群,而传输客户端不会
2.节点客户端使用一个client客户端,而传输客户端会获取所有节点的client客户端,然后遍历可用的client客户端
3.传输客户端会产生双跳问题,例如,如果此时使用的是node1创建的client,而要查询的数据在node2上,那么client会先将请求发送到node1,然后再转发到node2上请求数据。节点客户
4000
端不会产生该问题,它会直接将请求发送到node2
节点客户端(node client)的创建方式:
// 创建配置对象 myClusterName处为es集群名称 Settings settings = Settings.settingsBuilder() .put("cluster.name", "myClusterName").build(); //创建node创建器 NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder(); //创建node节点 client为true表示该节点不存储数据 Node node = nodeBuilder.clusterName("yourclustername").client(true).settings(settings) .node(); //创建node客户端 Client client2 = node.client();
传输客户端(Transport client)的创建方式:
// 创建配置对象 myClusterName处为es集群名称
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "myClusterName").build();
// 创建客户端 host1,host2处为es集群节点的ip地址
TransportClient client = TransportClient
.builder()
.settings(settings)
.build()
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("host1"), 9300))
.addTransportAddress(
new InetSocketTransportAddress(InetAddress
.getByName("host2"), 9300));
参考书籍:
ElasticSearch权威指南
相关文章推荐
- Elasticsearch系列(五)----JAVA客户端之TransportClient操作详解
- Elasticsearch系列(七)----JAVA客户端之RestClient操作详解
- ElasticSearch(2)--使用Java客户端创建文档
- SSO单点登录系列1:cas客户端源码分析cas-client-java-2.1.1.jar
- SSO单点登录系列1:cas客户端源码分析cas-client-java-2.1.1.jar
- Zookeeper系列(四)Zookeeper客户端(JAVA)API之创建会话
- java通信系列之一by_书訢:通信基础和简单服务器客户端创建
- ElasticSearch(6)--使用Java客户端创建索引和映射
- 创建电信网络实时监控图――电信网管中的Java客户端系列(四)
- elasticsearch 口水篇(4)java客户端 - 原生esClient
- elasticsearch 5.0 获取 TransportClient 操作客户端java API
- Elasticsearch 5.X Java API 创建客户端
- elasticsearch java 客户端之Client简介
- Java操作ElasticSearch之创建客户端连接
- Zookeeper系列(五)Zookeeper客户端(JAVA)API之创建节点
- elasticsearch java客户端 - 原生esClient
- elasticsearch 5.0 获取 TransportClient 操作客户端java API
- Elasticsearch【JAVA REST Client】客户端操作
- Elasticsearch系列(十一)----Spring整合Elasticsearch5.5.1的TransportClient客户端
- ElasticSearch java API--创建Client连接