设计高弹性
编辑设计高弹性编辑
像 Elasticsearch 这样的分布式系统被设计为即使某些组件出现故障也能继续工作。只要有足够多的连接良好的节点来接管其职责,即使某些节点不可用或断开连接,Elasticsearch 集群也可以继续正常运行。
弹性集群的最小规模是有限制的。所有 Elasticsearch 集群都需要以下组件才能正常运行
弹性集群需要为每个必需的集群组件提供冗余。这意味着弹性集群必须具有以下组件
- 至少三个主节点候选节点
- 每个角色至少有两个节点
- 每个分片至少有两个副本(一个主分片和一个或多个副本,除非索引是 可搜索快照索引)
弹性集群需要三个主节点候选节点,这样如果其中一个节点出现故障,剩余的两个节点仍然可以构成多数并成功选举。
类似地,每个角色的节点冗余意味着如果某个角色的节点出现故障,另一个节点可以接管其职责。
最后,弹性集群应该为每个分片至少有两个副本。如果一个副本出现故障,应该有另一个好的副本接管。Elasticsearch 会自动在剩余的节点上重建任何失败的分片副本,以便在故障后将集群恢复到完全健康状态。
故障会暂时降低集群的总容量。此外,在故障后,集群必须执行额外的后台活动才能恢复到健康状态。您应该确保您的集群即使在某些节点出现故障的情况下也能处理您的工作负载。
根据您的需求和预算,Elasticsearch 集群可以包含单个节点、数百个节点,或介于两者之间的任何数量。在设计较小的集群时,您通常应该专注于使其能够抵御单个节点故障。大型集群的设计人员还必须考虑多个节点同时出现故障的情况。以下页面提供了一些关于构建不同规模的弹性集群的建议