我有一个全天加载高优先级 JMS 消息的队列,我想快速将它们排除在外。队列还定期以大批量的低优先级消息加载。我在忙碌的日子里看到的问题是,队列前面总是有足够的高优先级消息,以至于在该音量下降之前,没有低优先级的消息被选中。他们经常会排长队直到半夜。该应用程序分布在多个服务器上,但 CPU 甚至没有呼吸困难,JMS 似乎是瓶颈。
我的预感是实现某种老化算法,以提高已在队列中很长时间的消息的优先级,但当然,这就是中间件应该为我做的事情。我无法想象 JMS 提供者 (IBM WebsphereMQ) 或应用程序服务器 (TIBCO BusinessWorks) 没有某种设施来应对这种情况。所以在我开始写一些代码之前,我想我会问,有没有办法让这些技术中的任何一种来帮助我解决这个问题?
正在读取队列的 BusinessWorks 活动是 JMS SOAP 事件源,但我可以将其转换为 JMS 队列接收器活动或其他活动。
欢迎所有关于如何解决这个问题的想法:-) TIA