1 使用客户端
以java为例,ElasticSearch提供了两种client使用模式。
1.1 节点客户端-Node Client
使用这种模式的话,你的程序会作为一个不存储数据的节点加入ES集群,换句话说,虽然它不会持有任何的数据,但是它作为集群的节点就可以时刻知道不同的数据此时此刻存储在哪个节点上,进而可以直接与存储目标数据的节点进行通信。
1.2 传输客户端-Transport Client
是一种更加轻量的通信方式,使用这种模式你的程序不会加入集群,只是简单的与集群中的代表节点进行通信。
这两种通信方式使用的都是9300端口,使用ES原生的传输协议。如前面的文章所述,9300也是集群中各个节点之间的通信端口,如果这个端口没有对你的程序打开的话你将无法建立ES集群。
同时,你的客户端版本也需要与ES的版本相匹配。
1.3 如何选型
你可能想知道何时使用传输客户端(注:Transport Client,下同)与节点客户端(注:Node Client,下同)。
传输客户端作为一个集群和应用程序之间的通信层。它知道 API 并能自动帮你在节点之间轮询,帮你嗅探集群等等。但它是集群 外部的