首页 > 解决方案 > “索引创建不再默认为五个分片”背后的原因

问题描述

““索引创建不再默认为五个分片而是一个分片”背后的原因是什么

到目前为止,假设是,更多的分片 = 更多的可扩展性 = 更多的并行性,这种变化不是违背了像 ES 这样的分布式系统的全部目的吗?

标签: elasticsearch

解决方案


是的,您可以关联更多的分片 = 更多的可扩展性 = 更多的并行性,但这仅在这些分片使用集群中的多核或更多机器(数据节点)时才有用。

这是为基本工作负载创建的默认配置,显然需要针对高级用例进行更多微调,这是使其可扩展的唯一目的,设计完美的 Elasticsearch 集群非常困难,因为它取决于由于各种因素,Elasticsearch 倾向于提供一些更适用于一般用例的默认值。

要么从一个适度的工作量开始,然后逐渐增加你的工作量,要么从一开始的巨大工作量开始(在这种情况下,你将有更多的分片来获得第一行中列出的好处,这用于高级用例)。

但第一次使用更为常见,Elasticsearch 的优点在于,您只需很少的知识即可开始使用,这些默认设置对于适度的工作负载非常有效,而且您通常不必更改它们,甚至不必了解它们细节。

为具有巨大搜索流量的少量文档创建更多分片会产生问题(为单个搜索创建 5 个线程,因为默认分片为 5),这是大多数基本和适度应用程序的常见用途。

因此,将默认分片更改为 1 作为其更常见的用例是有意义的,除此之外,您需要深入扩展集群,这需要进一步微调 Elasticsearch。


推荐阅读