elasticsearch - “索引创建不再默认为五个分片”背后的原因
问题描述
““索引创建不再默认为五个分片而是一个分片”背后的原因是什么
到目前为止,假设是,更多的分片 = 更多的可扩展性 = 更多的并行性,这种变化不是违背了像 ES 这样的分布式系统的全部目的吗?
解决方案
是的,您可以关联更多的分片 = 更多的可扩展性 = 更多的并行性,但这仅在这些分片使用集群中的多核或更多机器(数据节点)时才有用。
这是为基本工作负载创建的默认配置,显然需要针对高级用例进行更多微调,这是使其可扩展的唯一目的,设计完美的 Elasticsearch 集群非常困难,因为它取决于由于各种因素,Elasticsearch 倾向于提供一些更适用于一般用例的默认值。
要么从一个适度的工作量开始,然后逐渐增加你的工作量,要么从一开始的巨大工作量开始(在这种情况下,你将有更多的分片来获得第一行中列出的好处,这用于高级用例)。
但第一次使用更为常见,Elasticsearch 的优点在于,您只需很少的知识即可开始使用,这些默认设置对于适度的工作负载非常有效,而且您通常不必更改它们,甚至不必了解它们细节。
为具有巨大搜索流量的少量文档创建更多分片会产生问题(为单个搜索创建 5 个线程,因为默认分片为 5),这是大多数基本和适度应用程序的常见用途。
因此,将默认分片更改为 1 作为其更常见的用例是有意义的,除此之外,您需要深入扩展集群,这需要进一步微调 Elasticsearch。
推荐阅读
- mysql - 使用不同表的计数计划和更新
- javascript - 如何使用 javascript 对嵌套数组对象进行排序
- angular - 等待元素出现在dom中然后执行代码angular 6单元测试
- python - 根据 Pandas DataFrame 中的索引和列获取出现次数以创建不同的数据视图
- tcl - 如何将一个proc中的数组读取到另一个proc,因为proc在同一个命名空间中
- java - 谁能解释为什么我得到随机 ar.get(0) 值
- php - 如何让我只更新选择的内容?
- java - java spring和hibernate如何将日文字符保存到Mysql中?
- python - 如何每分钟重新采样不均匀的时间戳
- amazon-s3 - Hive 用新的 s3 位置覆盖表