三个节点集群中有多少个主站

Tom*_*mmy 3 elasticsearch

我偶然发现这个问题是三节点集群中有多少主人.我在互联网上的一篇文章中发现了这一点,搜索和索引请求不会被发送给当选的主人.那是对的吗?那么,如果我有三个节点充当主节点(其中一个节点被选为主节点)我应该指出要被索引的传入日志并搜索到除了当选主节点之外的其他主节点吗?请澄清.谢谢提前

Jak*_*ski 6

在三节点群集中,所有节点最有可能保存数据且符合主节点.这是最简单的情况,您不必担心其他任何事情.

如果您有一个更大的集群,则可以将几个节点配置为专用主节点.也就是说,他们是符合主人资格的,他们不持有任何数据.例如,您将拥有3个专用主节点和7个数据节点(不符合主节点).恰好其中一个专用主​​节点将始终是选定的主节点.

关键是由于专用主节点不保存数据,因此它们不会直接服务索引和搜索请求.如果您向它们发送索引或搜索请求,则除了委派给7个数据节点之一之外没有其他办法.

来自模块Elasticsearch参考 - 节点:

专用主节点是具有设置node.data:false和node.master:true的节点.我们积极推动在关键集群中使用专用主节点,以确保有3个专用节点,其唯一的角色是主节点,轻量级操作(集群管理)责任.通过减少这些节点执行的资源密集型工作量(换句话说,不向这些专用主节点发送索引或搜索请求),我们可以大大降低群集不稳定的可能性.

一个相关的问题是群集中应该有多少个主节点.答案基本上至少为3,以防止裂脑(由于网络错误导致两个主人同时选举).

Elasticsearch手册里有关于最低主节点一节,摘录:

当你的大脑裂开时,你的群集就有丢失数据的危险.因为主服务器被认为是集群的最高标尺,所以它决定何时可以创建新索引,何时移动分片等等.如果您有两个主服务器,则数据完整性会变得危险,因为您有两个节点认为它们负责.

此设置告诉Elasticsearch不选择主节点,除非有足够的符合主节点的节点可用.只有这样才能举行选举.

应始终将此设置配置为符合条件的主节点的仲裁(大多数).仲裁是(符合主节点的节点数/ 2)+ 1.以下是一些示例:

  • 如果您有十个常规节点(可以保存数据,可以成为主节点),则法定数量为6.
  • 如果您有三个专用主节点和一百个数据节点,则仲裁为2,因为您只需要计算符合主要条件的节点.
    • 如果你有两个常规节点,那么你就是一个难题.仲裁将为2,但这意味着丢失一个节点将使您的群集无法运行.设置为1将允许您的群集运行,但不能防止裂脑.在这种情况下,最好至少有三个节点.