版本:ElasticSearch7.6.2
场景:数据量不大,一年大概1.5亿数据量,存储TPS大概200,查询TPS大概150。
现在搭建集群,有三台ES服务器,只有一台master,不存储数据,另外两个子节点做存储和搜索。
疑问:
1、假如其中一个子节点挂了,再重新启动,会造成两个子节点数据不一致吗?因为要求数据不能有丢失。
2、这么搭建集群是否合理?如果不合理有哪些需要调整?
3、按照数据量增长情况,这样一个ES集群能否扛住,分片设置多少合理?
场景:数据量不大,一年大概1.5亿数据量,存储TPS大概200,查询TPS大概150。
现在搭建集群,有三台ES服务器,只有一台master,不存储数据,另外两个子节点做存储和搜索。
疑问:
1、假如其中一个子节点挂了,再重新启动,会造成两个子节点数据不一致吗?因为要求数据不能有丢失。
2、这么搭建集群是否合理?如果不合理有哪些需要调整?
3、按照数据量增长情况,这样一个ES集群能否扛住,分片设置多少合理?
2 个回复
匿名用户
赞同来自:
master最少3台
data节点挂掉,重启也没事,自动恢复数据。
1年才1.5亿数据,数据量真的是太少了。
data节点的数量 需要根据业务来分析的,你的索引设计的是单一索引,还是按照天的索引?
如果是单一索引,最开始的分片数量需要定足够大(极限)
如果是按照天的索引,最开始分片数可以小,以后逐渐增大到(极限)
极限的意思是最大data节点的数量(或者2倍,但不建议2倍),而最大data节点也是有极限的(最好是20台,最好不要超过30台)
那么这样的话,主分片的个数最大就是20个(或者40个,但不建议),30个(或者60个,但不建议)
所以综上所述:单索引主分片的个数是有极限的。
全是个人理解和生产环境得出的个人结论,不代表其他人。如果有误,请理解。
zakokun - 后端开发
赞同来自:
如果只有3台服务器,可以通过一台机器跑2个es服务的形式做成 3 master + 3 data 的方式
分片数量简单来说就是不超过data node数量。按照我说的做的话,分片设置为3就可以了