使用WMQ中间件,出现了丢消息现象,不能确定是发送,接收,和MQ三者中哪一个出了问题,请帮助分析

发布于 2021-11-08 12:35:14 字数 649 浏览 815 评论 1

我们的一个老的告警处理项目,目前应用的大概有40多个地方,用了有好几年了,现在有两个省提出说丢告警,于是对问题进行了分析。

首先查的发送方,我们的一个C++的程序,因为不太懂,问了一些人,并查了日志,得出结论在发送的日志中可以找到丢失的这些告警,并确认这些告警的日志是在发送成功后记录的。

发送没找到问题,开始接收的问题,接收是单线程接收第接收一条都会顺序的记数,发现日志中这些告警记数都是连续的。接收的程序也分析了是监听式的接收,没发现存在问题,

最后分析MQ,因为我们用的是非持久的消息,对MQ的错误日志进行了分析,在丢告警的时间点均未发现错误,是主检查了系统的错误日志和队列管理器的日志。

还有一个需要补充,从目前发生两次的情况来看都有一个共同的特点,突然间告警量增大,一次是一个小时总共处理了700多条,但在丢告警的点持续时间33秒,发送的日志中查以查到近300条告警,并丢了其中的242条。一次是一小时共处理9000多条,在丢告警的1分32秒里处理了近3000条,丢了2457条。

1,现在想咨询下各们大侠,有没有人遇到过这种问题,有什么好的定位问题的思路?

2,WMQ的死信队列是不是只对持久的消息才有用?因为我让两个现场定义了死信队列,但其中一个发生了丢告警,但死信队列里面没有消息,难道真的可以放弃MQ的问题了吗?还是死信队列了解的不够清楚。

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梅窗月明清似水 2021-11-12 11:03:14

最后定位了这个问题,通过观察和对比发现在告警风暴出现时队列出现堆积,接收程序处理出现延时,最大延时在2-3分钟,最后对比接收的最后一条消息和丢失的最后一条消息,发现接收的时延都在大约30秒的地方,如以我们判断是不是可能有过期时间,最后发现接收的程序是使用了过期时间这种设置,经过测试我们也发现,设置了过期时间的消息会一直在队列里面,直到有程序GET消息时WMQ会检查过期,将过期的消息删掉。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文