Apache Camel - 浏览 SEDA 队列的交换

Apache Camel - Browse Exchanges of a SEDA queue

我正在开发一个使用 Apache Camel 并启用 JMX 的小型应用程序。 非常简单地说,我有一个使用 SEDA 组件的路由 - 只有 1 个消费者 - 简而言之,它创建自己的线程并在路由繁忙时对传入的交换进行排队。

基本上我想 monitor/browse/visualize 在 SEDA 队列中等待的交换。我已经尝试过使用 JMX 的 Hawtio 和 JConsole,但它只提供给定路线上的飞行交换总数和当前交换数。它没有提到等待处理的交换数量。

我还尝试了浏览组件,它跟踪所有传递到浏览端点的交换,但是它保留所有交换,而不是仅 "queued" 个交换。

我想知道 Camel 中是否有开箱即用的东西允许我这样做,或者我是否忽略了 Hawtio 或 JConsole 中的某些东西。

提前致谢。

您可以在 SedaEndpoint mbean 上看到队列中有多少消息。您可以在 hawtio 的端点树中找到它们,也可以在普通 JMX 中找到它们。

@ManagedAttribute(description = "Current queue size") public int getCurrentQueueSize() { return queue.size(); }