【发布时间】:2015-02-11 08:20:12
【问题描述】:
我有一个全天加载高优先级 JMS 消息的队列,我想快速将它们排除在外。队列还定期以大批量的低优先级消息加载。我在忙碌的日子里看到的问题是,队列前面总是有足够的高优先级消息,以至于在该音量下降之前,没有低优先级的消息被选中。他们通常会排长队直到半夜。该应用程序分布在多个服务器上,但 CPU 甚至没有呼吸困难,JMS 似乎是瓶颈。
我的预感是实现某种老化算法,以提高已在队列中很长时间的消息的优先级,但当然,这就是中间件应该为我做的事情。我无法想象 JMS 提供者 (IBM WebsphereMQ) 或应用程序服务器 (TIBCO BusinessWorks) 没有某种设施来应对这种情况。所以在我开始写一些代码之前,我想我会问,有没有办法让这些技术帮助我解决这个问题?
正在读取队列的 BusinessWorks 活动是 JMS SOAP 事件源,但我可以将其转换为 JMS 队列接收器活动或其他活动。
欢迎所有关于如何解决这个问题的想法 :-) TIA
【问题讨论】:
-
我认为还值得回顾一下系统的瓶颈。您的站点 CPU 没有被大量使用。那么是系统盘绑定还是网络绑定?是否考虑增加消费者数量而不是尝试和移动消息优先级?为了跟上消息的产生?
标签: jms ibm-mq businessworks