我们有一个MDB流程,它读取消息,处理消息并将其发布到下游xpression应用程序使用的另一个队列。
无论何时出现重负载,这个下游应用程序都无法以我们发布的速率使用它,从而导致其接口应用程序的延迟。
我们需要一个解决方案来阻止我们的消息。所以这里的问题是你如何减慢MDB进程消耗消息的速度?
我们的解决方案是在达到某个阈值(这对我们的下游应用程序是安全的)之后,通过调用Thread.sleep(一段时间)来阻止我们的MDB消耗来自队列的消息。
但是这个设计有自己的缺陷,如果线程没有恢复的话。你是如何管理它的?
还有没有其他更好的机制来处理这个甚至没有使用thread.sleep()?
该应用程序在weblogic上。