步骤1)创建一个名为"NODE1“的节点
步骤2)在NODE1中创建名为"application“的新索引,并将索引类型设置为”测试“
步骤3)创建的索引包含5个碎片。没有复制品
步骤4)现在我在索引中插入了5个doc。它将分裂成五个碎片
步骤5)现在我在node 1的集群中启动名为"NODE2“的新节点。
步骤6)根据我的理解,它在节点之间共享碎片。所以我的两个碎片移到了新节点。
问题1)现在我在NODE1请求已重新定位的碎片(从NODE1转移到NODE2的碎片)中存在的文档。
问题2)我的搜索是否返回我所要求的文件?
问题3)两个节点如何相互通信
问题4)我能用NODE2读写吗?如果是,我可以搜索NODE2从NODE1编写的相同数据。
提前谢谢..!
发布于 2014-02-03 08:02:16
所有答案都是肯定的:
节点通过传输端口相互通信,默认情况下是9300端口(或者在(9300-9400)范围内第一个空闲端口)。他们使用自定义二进制协议进行通信,基于对象的序列化(但在大多数情况下不是标准的java序列化)。
集群中的任何节点都是集群感知的,并且知道碎片在哪里等等,因为它们都共享所谓的集群状态。您可以向任何节点发送请求(读和写),它将被重新路由到感兴趣的节点,并根据请求的类型正确执行。
https://stackoverflow.com/questions/21486394
复制相似问题