java代码怎样连接es,Elasticsearch 连接ES的两种方式
1、創(chuàng)建客戶端節(jié)點(diǎn)來連接:
其中client(true)將node指定為客戶端節(jié)點(diǎn),所以這個(gè)不能寫漏掉,客戶端節(jié)點(diǎn)是不持有數(shù)據(jù)的,
Java代碼??
Node?node?=?NodeBuilder.nodeBuilder().clusterName(clusterName).client(true)
.node();
Client?client?=?node.client();
優(yōu)勢:
通過此方式創(chuàng)建客戶端能知道所有關(guān)于集群、索引、分片的信息,在操作上可以更快的執(zhí)行。
不足之處:
啟動(dòng)時(shí)客戶端節(jié)點(diǎn)必須加入集群并建立與其他節(jié)點(diǎn)的連接,此過程需要消耗時(shí)間和資源。
當(dāng)ES集群處于另一個(gè)局域網(wǎng)中時(shí)就不行了,所以一般不建議使用此方式。
2、使用傳輸機(jī)客戶端來連接(即使用TransportClient來創(chuàng)建):
Java代碼??
Settings?settings?=?Settings.builder().put("cluster.name",clusterName).build();
client?=?TransportClient.builder().settings(settings).build();
client.addTransportAddress(new?InetSocketTransportAddress(
InetAddress.getByName(host),?port));
優(yōu)勢:
啟動(dòng)速度快,不需要像前者那么多的socket連接。
不足之處:
因?yàn)樗幌肭罢吣菢又兰骸⑺饕⒎制倪@些信息,所以在分發(fā)數(shù)據(jù)和查詢上沒前者快,不能直接發(fā)送到指定的節(jié)點(diǎn)或直接從某個(gè)節(jié)點(diǎn)去取數(shù)據(jù),需要ES在其中進(jìn)行一些額外的轉(zhuǎn)發(fā)才能完成。
TransportClient類的可用配置:
client.transport.sniff:默認(rèn)值為false,當(dāng)設(shè)置為true時(shí),ES會(huì)讀取集群中的節(jié)點(diǎn)信息。
client.transport.ignore_cluster_name:默認(rèn)值為false,當(dāng)設(shè)置為true時(shí),ES會(huì)忽視配置中的集群名稱并嘗試連接到某個(gè)可連接集群上,而不管集群名稱是否匹配。
client.transport.ping_timeout:默認(rèn)為5s,此參數(shù)指定了ping命令響應(yīng)的超時(shí)時(shí)間。
client.reansport.nodes_sampler_interval:默認(rèn)為5s,此參數(shù)指定了檢查節(jié)點(diǎn)可用性的時(shí)間間隔。
標(biāo)簽:節(jié)點(diǎn),client,集群,Elasticsearch,連接,ES,客戶端
來源: https://www.cnblogs.com/a-du/p/13329367.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java代码怎样连接es,Elasticsearch 连接ES的两种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP制作回合制游戏,回合制游戏脚本制作
- 下一篇: Matlab某医院用光电比色计,数理统计