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();
}
我正在开发一个使用 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();
}