ElasticSearch(一) Transport Client
Transport Client 通过远程连接到Es 集群,他不加入集群,只是通过集群nodes 的 transportAddress 和集群通信。
一 如何通过集群域名获得集群nodes的transportAddress
http://xxx.com/_cat/nodes?h=ip,port
http://xxx.com/_nodes/transport
二 TransportClient 初始化方式
// on startup TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAddress(new TransportAddress(InetAddress.getByName("host1"), 9300)) //9300 为nodes 默认的端口,请使用实际 端口号 .addTransportAddress(new TransportAddress(InetAddress.getByName("host2"), 9300)); // on shutdown client.close();
三 TransportClient 动态加入node
Settings settings = Settings.builder() .put("client.transport.sniff", true) //嗅探 默认每5s去更新下集群新的节点,加入新节点,去掉坏节点
.put("cluster.name", "myClusterName") //集群名称
.build();
TransportClient client = new PreBuiltTransportClient(settings);
四 Settings 其他参数
可通过设置 client.transport.nodes_sampler_interval 来改变轮询集群节点连接的频率。
Parameter | Description |
---|---|
|
Set to |
|
The time to wait for a ping response from a node. Defaults to |
|
How often to sample / ping the nodes listed and connected. Defaults to |
官方文档:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html