步骤1)创建名为“NODE1”的节点
步骤2)在NODE1中创建名为“application”的新索引,在索引类型中创建“testing”
步骤3)创建的索引包含5个分片。没有复制品
步骤4)现在我将5个doc插入到索引中。它将在5个分片中分割
步骤5)现在我在NODE1的群集中启动名为“NODE2”的新节点。
步骤6)根据我的理解,它共享节点之间的分片。所以我的2个分片移动到新节点
问题1)现在我在NODE1请求文件,该文件存在于重新定位的分片中(从NODE1移动到NODE2的分片)
问题2)我的搜索是否会返回我要求的文件
问题3)两个节点如何相互通信
问题4)我可以在NODE2中读写吗?如果是,我可以从NODE1中搜索由NODE2写的相同数据。
先谢谢..!
答案 0 :(得分:1)
所有答案都是肯定的:)
节点通过传输端口相互通信,默认为9300端口(或第一个在(9300-9400)范围内免费。它们使用自定义二进制协议进行通信,基于对象的序列化(非标准)在大多数情况下,java序列化虽然)。
群集中的任何节点都可识别群集,并且知道分片的位置等等,因为它们都共享所谓的群集状态。您可以向任何节点发送请求(读取和写入),并将其重新路由到有趣的节点,并根据请求的类型正确执行。