为啥要优化 es 相关的配置
接着前面的博文,继续说道我们这个审核系统是个遗留系统,而其中关于 es 的使用,及相关配置有其不合理之处,可以进行优化来提升读写性能。
在刚来项目组的时候,出现了一次系统故障,队列积压消息严重,影响到线上很多正常的业务的审核处理。
先来看张图(公司采购的阿里云 rocketmq 服务,阿里云配套的监控服务还是很齐全的)
在下午三点到五点之间,突然进审了很多数据, 通过跟业务方沟通,了解到他们需要补一些数据到审核系统这边,于是一股脑全部发过来了
而通过监控,发现我们的审核系统的 tps 大概是 10,也就是说 1s 中大概能够处理 10 条数据,因此,在消费完前面这一批补充的数据前,后面正常的业务数据迟迟消费不到, 因为所有的业务线都是在一个队列中,这里有架构方面的问题,也有消费效率低下的问题,这里先不说架构方面的问题。而是考虑下怎么能够提高消费效率。
如果提高消费数据的效率
既然知道 es 的消费效率低下,那么我们就要去解决这个问题, 当时我刚来对业务也不是很熟悉,于是我就去看了看关于 es 的配置,以及 es 相关的处理代码,发现了其中的一些问题。
我随便找了几个数据量在 1000 万以上的索引看了看,它们的配置
GET /index_name/_settings
发现分片数都是