企业应用程序之间的JMS

企业应用程序之间的JMS,jms,system,message-queue,messaging,Jms,System,Message Queue,Messaging,我们有一个项目,希望使用JMS将两个企业系统链接在一起。 简而言之,system 1向队列发送消息。 Systems2接收该消息,在后台进行大约30分钟的处理,然后将消息发送回队列,供System1接收 我们能排一个队吗?还是需要两个队? 如果我们有两个队列,那么System1将写入queue1,System2将拾取。 当system2准备就绪时,它将写入queue2,System1将其拾取 哪种方法最好? 如果有人知道这些方法的任何局限性,或任何更好的解决方案,那么请分享 谢谢 Damien您

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

我们能排一个队吗?还是需要两个队? 如果我们有两个队列,那么System1将写入queue1,System2将拾取。 当system2准备就绪时,它将写入queue2,System1将其拾取

哪种方法最好? 如果有人知道这些方法的任何局限性,或任何更好的解决方案,那么请分享

谢谢
Damien

您可以在队列上使用选择器,但我建议保持简单,并按照您所述使用2个队列。我更喜欢将消息类型划分到单独的队列中,我想您会发现这也是最容易管理的


队列在很大程度上只是一个消息桶的逻辑名称,与单个队列中的所有消息相比,几乎没有额外的开销。

如果这是一个专用的对等接口,并且这两个应用程序都不像服务器,那么您可以使用单个队列。但是,此模型不支持客户机-服务器模式。另一方面,客户机-服务器模式支持对等接口和客户机-服务器接口,实现起来并不困难,为什么不使用它呢

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


此方法还支持客户端和服务器队列不在同一消息引擎上。它支持以FIFO模式访问队列,这应该会更高效。它比单个队列更好地处理快速生产者、慢速消费者的典型异步消息传递情况。它支持对目的地的动态回复。它允许应用程序相互独立地重新定位。如果您拥有的是真正的点对点,没有客户机-服务器模式的元素,那么这种体系结构也支持这种模式。

是的,只是快速查看了选择器,但我完全同意保持简单。我不认为我们需要通过使用选择器使这个项目过于复杂