如何确定不同队列上的消息的优先级?

时间:2012-01-10 10:42:20

标签: java-ee jms websphere message-driven-bean

资源分配/优先排序问题。

我正在开发一个Java EE应用程序,它有许多消息驱动Bean(MDB),它接收来自不同JMS队列的消息,比如队列A / MDB A和队列B / MDB B以简化。

当负载过高时,系统需要优先处理队列A上的消息优先于队列B上的消息。为什么?队列A上的消息需要尽快处理,因此MDB A需要“全部”db,cpu资源等。

您对如何以干净的方式解决这个问题有什么建议吗?不那么干净也可以起作用......

我的生产服务器是WebSphere Application Server 7,使用SIBus进行消息传递。 WebSphere MQ可以是一个选项。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:2)

在与该地区的专家一起调查此问题后,我得到了一些坏消息:

这可能无法完成。

使用SIB无法完成100%,您只能在单个目标中确定消息的优先级。

关于WebSphere MQ,似乎也无法完成,它们只有队列优先级的属性是在处理集群中的单个队列时,我想这对你没有帮助。

所以,遗憾的是,如果您需要优先处理可能需要更改架构的消息,那么这可能无法完成。  也许是带有选择器的单个队列。然后,您可以优先处理某种类型的消息。