ElasticSearch提供了NodeClient,Transport方式。
NodeClient这种方式相当于创建了一个节点,放入集群中,这个节点不存储数据,并且不能作为主节点,因为是一个节点,它知道整个集群的状态(每个节点在哪,哪些分片在哪个节点上等),这意味着它执行API时不会出现”连跳”。
TransportClient不创建节点,它存在于集群外部,类似于REST客户端,只是充当ES集群和你的应用的通信层,它知道API,并且能够在节点间自动轮循、帮你嗅探集群等。
Transport方式的好处是:
性能更高
本地资源消耗更少
内置连接池
当然也有缺点
当初始化连接时,ElasticSearch必须已启动,且必须知道集群中一个节点的IP地址和端口;
可能存在"连跳",浪费一定的网络资源
如果应用的是java语言,一般通过Transport优于node
elasticsearch1.7版本的TransportClient
Settings settings = ImmutableSettings.settingsBuilder().put("自己的配置","同前").