如果应用程序A和应用程序B使用REST,当应用程序B需要从应用程序A完成服务(如调用应用程序A中的方法)时,应用程序B可以直接调用服务或发送对该服务的请求它需要。如果应用程序A和应用程序B使用JMS而不是REST,情况如何,应用程序B是否可以在需要时请求来自应用程序A的消息,或者使用JMS无法发出请求/请求消息?
答案 0 :(得分:0)
在使用JMS的非常高的级别上,您可以创建队列并在其上设置侦听器
所以说每个应用程序可以有两个队列(requestQ和responseQ)。我将从应用程序A想要调用应用程序B的角度解释功能。
这是一个非常粗略的设计来解释工作原理,并且架构可以根据需求而有所不同,但是使用这种模式可以获得一些好处:
这本身就是一个非常广泛的话题。我建议阅读有关企业集成模式和 Apache Camel 的内容,以便更好地理解。
答案 1 :(得分:0)
使用JMS,您无法从其他应用程序请求任何服务,并等待已处理的请求的响应返回。但如果唯一的问题是发布或向另一个应用程序发送一些消息,那么JMS是最好的,因为您不必等待任何响应从那里回来。简单地通过JMS体系结构将消息发送到定义的队列或主题。另一个应用程序只会从队列或主题中读取消息。但是,如果您需要执行任何特定服务并且必须使用有效响应,则REST架构将是合适的。因此,对于请求 - 响应框架,REST是最佳选择。