企业应用程序之间的JMS

问题描述:

我们有一个项目,我们希望使用JMS将2个企业系统链接在一起。简而言之,系统1向队列发送消息。 Systems2接收该消息,在后台执行大约30分钟的整个负载处理,然后将消息发送回队列以供System1接收。企业应用程序之间的JMS

我们可以摆脱1队列还是需要2? 如果我们有2个队列,那么System1写入队列1,System2启动。 当system2准备就绪时,它将写入队列2并且System1将其读取。

哪种方法最好? 如果有人对这些方法或任何更好的解决方案的任何限制都知道,那么请务必份额

感谢 达明

您可以使用一个队列选择,但我会建议保持简单,用2个队列如你所述。我更喜欢将消息类型分为不同的队列,我想你会发现最容易管理的。

一个队列在很大程度上只是一个消息桶的逻辑名称,并且如果比单个队列中的所有消息有更多的开销,则很少。

+0

是的,只是快速看过选择器,但我完全同意保持简单。我不认为我们需要通过使用选择器来过度复杂化这个项目 – Damien 2010-10-29 16:27:58

如果这是一个专用的对等接口,并且这些应用程序都不像服务器那样工作,那么您可以使用单个队列。但是,该模型不支持客户端 - 服务器模式。另一方面,客户端 - 服务器模式支持点对点接口以及客户端 - 服务器接口,并且实现起来并不困难,所以为什么不使用它?

具体来说,一个服务器监听一个众所周知的队列。任何想要驱动该服务的应用程序都会将消息发送到众所周知的队列。该消息包含回复目标的地址,服务器将回复发送到该目标。通过这种方式,服务器应用程序可以处理来自网络上任何地方的许多相对匿名(或者如果需要,则进行身份验证)客户端的请求

此方法还支持客户端和服务器队列不在同一个消息引擎上。它支持以更高性能的FIFO模式访问队列。它处理快速生产者的经典异步消息传递情况,消耗速度慢于单个队列。它支持动态回复目的地。它允许应用程序彼此独立地重新分配。如果你有什么是真正的点对点,没有客户端 - 服务器模式的元素,那么这个架构也支持这一点。