有谁知道如何告诉Elastic Search停止节点到节点的通信,然后重新启动它。在我的系统中,我想告诉它停止直到某个条件然后重新启动通信(同步数据)
答案 0 :(得分:0)
通过节点到节点通信,您的意思是数据同步和分片重定位吗?
如果是,您可以使用群集设置API将cluster.routing.allocation.enable
设置为none
来完成此操作。
如果您不是指数据同步,则可以通过阻止端口9300(或ES用于内部通信的端口)来实现此目的。
答案 1 :(得分:0)
请注意,任何节点离开群集都会导致elasticsearch重新平衡分片和副本。当任何节点丢失时,整个群集负载会增加,因为群集需要通过将现有数据复制到其余节点来满足分片和副本设置。因此,如果操作经常发生,则额外的分片和副本将消耗相当多的额外空间。
如果您完全了解其影响,可以尝试分片分配过滤。例如,从群集中排除主机ip 10.0.0.1:
PUT _cluster/settings
{
"transient" : {
"cluster.routing.allocation.exclude._ip" : "10.0.0.1"
}
}
除了ip之外,您还可以使用节点名称或主机名来排除节点。
您可以在此处找到完整的文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/allocation-filtering.html