ES限流导致ES数据更新不及时问题

目录

一、事故经过

二、事故原因

 三、问题总结

四、后续处理方案


一、事故经过

12月8日早上8点左右 发现系统不停报错,报错信息如下:

amnOkN_kRXGMwU3qmULUxA, primary term: 1 on EsThreadPoolExecutor[name = node10.18.47.130-data/write,
queue capacity = 200,
org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@e4f2d50[Running, pool size = 48, active threads = 48, queued tasks = 216, completed tasks = 1718542875]]"},"status":429}
at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:260)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:238)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:212)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1433)
... 99 common frames omitted

经过与排查与沟通,发现是ES发生了限流,导致ES集群出现部分不可写的情况。

8点40左右,把MQ堆积的数据,全部都不写入到ES,重启ES集群

10点左右,ES集群恢复正常功能

二、事故原因

经过排查,是由于12月8日凌晨4点左右,大数据大批量同步数据到lsrm系统,lsrm系统同步供应商信息到MDM,导致某一时刻,数据量达到6G,ES触发了限流,部分不可写,从而导致MDM的ES数据不能及时更新

 三、问题总结

目前DC高可用方案,针对的是整个ES集群宕机的情况,不能覆盖ES集群可读,部分不可写的情况。

针对这种情况,在写入ES时,做限流操作,限制写入ES的流量,保证ES操作的正常,事后可以通过刷数据的方式,保证数据的最终一致性。

四、后续处理方案

1、写入时,熔断限流,保证ES运行正常,不影响其他数据的写入

2、发生熔断限流时,产生告警,及时通知对应的人员。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值