elasticsearch 使用不同容量的机器(CPU、RAM)配置弹性搜索群集以进行滚动升级
由于成本限制,我只能使用以下类型的机器来设置ES群集elasticsearch 使用不同容量的机器(CPU、RAM)配置弹性搜索群集以进行滚动升级,elasticsearch,configuration,high-availability,elasticsearch,Configuration,High Availability,由于成本限制,我只能使用以下类型的机器来设置ES群集 节点A:精益(w.r.t.CPU、RAM)实例 节点B:Beefy(w.r.t.CPU、RAM)实例 节点M:“比”(w.r.t.CPU、RAM)实例更精简 就磁盘而言,A和B的大小相同 我的计划是将节点A和节点B设置为主合格节点,将数据节点和节点M设置为仅主合格节点(无数据存储)。 由于这两个数据节点不相同,其含义是什么 我将把它变成一个由3台机器组成的集群,仅用于滚动升级的可能性(当前数据量和未来几年的预期增长可以通过垂直扩展进行管理,保
我将把它变成一个由3台机器组成的集群,仅用于滚动升级的可能性(当前数据量和未来几年的预期增长可以通过垂直扩展进行管理,保留默认数量的碎片和副本将使我能够在需要时水平扩展)您的机器绝对不需要有相同的规格。您将需要3个符合条件的主节点,不仅用于滚动升级,而且通常用于高可用性 如果要水平扩展,可以创建更多索引来保存数据,或者将索引配置为具有多个主碎片和/或副本碎片。从版本7开始,新索引的默认设置是使用1个主碎片和1个副本碎片创建。像这样的单个索引实际上不允许您进行水平调度 更新:
关于负载和碎片分配(在哪里放置数据),默认情况下的弹性搜索将简单地考虑可用的存储量。启动Elasticsearch实例时,它会检查硬件并相应地为各种任务配置其线程池(线程数和队列大小)。因此,处理任务的可用线程数量可能会有所不同。如果我没有弄错的话,协调节点(接收外部请求的节点)将以循环方式分发索引/写入请求,而不考虑负载。根据您的Elasticsearch版本,这与搜索/读取请求不同,协调节点将利用自适应副本选择,并在分发请求时考虑各种副本的加载/响应时间
除此之外,规模和扩展是一个太复杂的话题,无法用简单的回答来全面回答。它通常还包括测试,以确定单个节点的限制/边界顺便说一句:在Elasticsearch的v7.x版本中,默认主碎片的数量发生了变化,因为过多的超刻度是Elasticsearch用户面临的最常见问题之一。“合理”的碎片大小为数十GB。感谢@Daniel的回复。我没有注意到默认值的变化(在现有的设置中,默认值是5个主碎片和1个副本)。虽然我理解在网络分区下拥有3个主合格节点w.r.t HA的好处,并通过创建带有过度分配碎片的索引来横向扩展,但我的问题是在索引和查询期间,2个节点上的w.r.t负载更多。因为,节点A是精益的,ES在回答查询时会考虑到这一点吗?或者,查询会在节点A和节点B上命中相同数量的碎片=瓶颈?尝试了解幕后发生的事情,而不仅仅是对任何细节的是/否.TIA。好的,您似乎使用的是7.x之前的Elasticsearch版本,其中,主碎片的默认数量为5。我将更新我的答案,并对负载进行评论。