使用 shuf 来打乱一个文件中的行或是选择文件中一个随机的行。

多个小业务需要ES的情况下是共用一个ES集群好还是分集群好?

Elasticsearch | 作者 wangxinrong | 发布于2020年04月08日 | 阅读数:2882

这些业务平时的cpu负载都比较低,但也不是始终都很平稳的情况,比如有时要导数据,有时有新业务上线,某个访问量或者数据量比较小的索引突然负载就高起来了。
 
我自己是觉得分集群比较好,因为只要任何层面存在共用的情况,总有相互影响的可能
 
比如ES中的各个角色是否需要使用独立节点这块:
1.data不独立,因为data节点通常是负载最高的,兼作哪个其他角色都会导致该角色的功能受影响。
2.client不独立,有时遇到某些查询导致client节点内存oom挂掉,如果这个节点兼作data节点影响数据读写,如果兼作master节点会导致master挂掉。
3.master不独立,当1、2两条中的节点出现异常时,master会受影响导致整个集群不稳定甚至异常。
 
又比如多个业务共用ES,相关数据是否需要在集群中共用节点资源这块:
1.多个索引数据共用data节点,那么只要有一个索引读写量突增导致节点负载增高,都会引起其他节点读写响应延时增加,或者直接超时、报异常等。
2.各索引独立data节点,client节点共用,理由同前面,当出现某些异常查询导致client节点挂掉时,其他数据也无法正常查询。
3.即使各索引都使用自己的一组data、client节点,当集群中有节点异常无法响应时,也会导致master获取该节点时卡住,造成kibana、cerebro无法正常连接集群、ES监控无法收集等情况。
 
但如果按照理想情况,那就要为每个业务新建独立集群,每个集群各角色都要用独立节点,这样成本比较高。
 
所以一般情况下,是采取什么办法比较好呢?上述的互相影响,还有资源利用率的问题,又可以通过哪些方法来解决呢?
已邀请:

xiaowoniu - java工程师

赞同来自:

多个集群,按着业务特点分集群,兼顾隔离性和成本

byx313 - BLOG:https://www.jianshu.com/u/43fd06f9589c

赞同来自:

共用一个集群,集群内部分tag,不同数据存到不同tag中。你说的client节点是coordinator节点?一般coordinator节点我们不会再做data or master。

wangxinrong

赞同来自:

我见过coordinator节点内存跑满oom的情况,既有写入导致也有查询导致的,还是会互相影响的
所以不知道是不是大家都有我上面说的各种情况的隔离和成本的问题,一般的处理方法是怎样

要回复问题请先登录注册