首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跟踪来自哪里的流氓AMQ消息

跟踪来自哪里的流氓AMQ消息
EN

Stack Overflow用户
提问于 2018-10-17 18:43:29
回答 1查看 58关注 0票数 0

这里的AMQ 5.7。我继承了一组非常古老的Java应用程序,这些应用程序使用ActiveMQ (AMQ)代理彼此之间以及与此生态系统之外的客户端进行通信。因此,AMQ经纪人有几百人(!)队列上有数百个JMS客户机,它们生活在几十个不同的服务器(每个服务器)上,向这些队列发布消息并使用这些消息。这是老鼠窝。

我有一个队列,我们称之为shouldBeDead,它应该不会接收任何消息。它在某个时候被废弃了,再也不应该向队列发送消息了。然而,它周期性地被来自某物/某地的数百条消息轰炸。它上没有使用者(这是正确的;我的Java应用程序套件不再在代码中的任何地方使用它,所以队列上没有任何东西监听它来使用它的消息)。

更复杂的是,这是一个旧的这个已知的UI错误版本,TLDR;是:我需要将实例升级到> 5.12.x。但是,由于这个问题之外的原因,我现在不能升级AMQ。因此,虽然我希望浏览shouldBeDead上排队的消息并深入了解它们以获取有关它们的信息,但我甚至无法在AMQ或应用程序日志中查看它们。

我只是想弄清楚这些消息是从哪里来的!

做一次网络分析可能是有成效的,但超出了我的技能范围,这些信息在看似随机的时间里淹没了队列,没有任何明显的模式。

我希望我可以做一些AMQ命令行fu来检查队列元数据,也许可以查看KahaDB或者其他任何类型的魔术来查看这些消息和/或从它们中获取跟踪/客户端信息。

最糟糕的情况是,我知道我可以部署一些代码更改来重新添加一个shouldBeDead侦听器/使用者,并记录这些消息,但是我实际上是在不做任何代码更改的情况下尝试这样做。有什么想法/想法吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-17 19:41:12

我会通过JMX console来解决这个问题。

这里是通过JMX获得的诊断信息列表,这里是通过命令行访问这些数据的一种方法。通过了解问题的具体细节,比如:

  • 这些爆发是多么的可预测
  • 大概有多少条消息
  • 发送了你有多少连接

你需要捕获相关的信息才能抓住你的制片人.

当然,在不知道细节的情况下,有一个想法可能会奏效:

定期运行bash脚本,检查队列的大小(如Destination/EnqueueCount) +定期保存所有活动连接。当您检测到不推荐队列上消息的尖峰时,回顾一下当时刚刚出现了什么连接(Connection/RemoteAddress__)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52861627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档