角色
-
主节点(active master):一般指的是活跃的主节点,避免负载任务,主节点主要用来管理集群,专用master节点仍将充当协调节点
-
候选节点(master-eligible nodes):默认具备选举权和被选举权,可以参与选举,也可以为其他节点投票。
-
投票节点(voting_only node):仅投票节点没有被选举权只有选举权,也就是仅投票节点永远无法成为主节点,这样的话我们就可以为其分配data角色让其承担数据负载,这样技能保证选举出的新的主节点是一个专用主节点,又降低的资源浪费。
一般情况下,voting_only 和 master 角色是一起配置的,单独配置 voting_only 角色是没有意义的。
配置master角色的节点拥有被选举权和选举权,而voting_only 的作用就是阉割掉候选节点的被选举权,让其只能投票,而不能参与选举。所以如果没有master角色,配置voting_only也是没有意义的。
-
专用主节点(dedicated master-eligible node):即 node.roles: [master],一般指的是只保留master角色的候选节点。
-
数据节点(data nodes):数据节点保存包含已编入索引的文档的分片。数据节点处理数据相关操作,如 CRUD、搜索和聚合。这些操作是 I/O 密集型、内存密集型和 CPU 密集型的。监控这些资源并在它们过载时添加更多数据节点非常重要。
-
预处理节点(ingest nodes):常用语一些数据写入之前的预处理操作,比如去除空格、split等操作,常和update_by_query、reindex等
-
远程节点(remote_cluster_client client):
具有
remote_cluster_client
角色的节点,使其有资格充当远程客户端当需要通过远程访问节点时,该角色必须配置,比如通过publish_host配置的地址访问服务节点时,该角色必须启用
节点失效监测机制
-
NodesFaultDetection:即 NodesFD,用于定期检查集群中的节点是否存活。
-
MasterFaultDetection:即 MasterFD,作用是定期检查 Master 节点是否存活。
何时触发选举
-
活跃master节点数量小于法定票数
-
active master挂掉
选举流程
脑裂问题
-
何为脑裂:无主或多主
-
解决办法:discovery.zen.minimum_master_nodes=N/2+1,N为有效投票节点数。