资源分配/优先排序问题。
我正在开发一个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可以是一个选项。
感谢您的任何建议!
答案 0 :(得分:2)
在与该地区的专家一起调查此问题后,我得到了一些坏消息:
这可能无法完成。
使用SIB无法完成100%,您只能在单个目标中确定消息的优先级。
关于WebSphere MQ,似乎也无法完成,它们只有队列优先级的属性是在处理集群中的单个队列时,我想这对你没有帮助。
所以,遗憾的是,如果您需要优先处理可能需要更改架构的消息,那么这可能无法完成。 也许是带有选择器的单个队列。然后,您可以优先处理某种类型的消息。