我为什么要将JMS用于MOM

时间:2014-08-06 08:40:46

标签: performance rest jms esb mom

我对这个话题非常好奇。 我将为内部系统创建一个通信机制,也可能还需要连接到一些外部客户端。内部模块也是分布式系统。 我需要在这些模块之间创建一个ESB。该系统应该为数百万用户提供高性能。

发布订阅或p2p通信都是必需的,

当我第一次开始考虑实现时,我计划在前面制作REST api,REST api将与JMS总线通信.JMS总线能够在内部系统之间提供通信。

不幸的是,根据我的调查,使用JMS可能会导致严重的问题:性能,可伸缩性......看起来像JMS是不必要的,我可以在内部模块上创建一些适配器,并且两者都可以与REST服务进行通信。

有谁知道我为什么要使用JMS进行内部沟通?

2 个答案:

答案 0 :(得分:3)

REST和JMS / MQ都支持远程系统(和本地)之间的通信。您可以根据以下方案获得帮助: 在您的情况下使用JMS的一些原因:

  1. 如果您的制作人以高于消费者的速度发送消息,那么持久消息传递将有所帮助。这也可能意味着您可以稍后处理交易/消息。
  2. 所有系统都不是一直都在运行。
  3. 您需要一个发布订阅机制(主题)。
  4. 消息不重要,并在负载较高时丢弃旧消息。
  5. 使用REST API的原因(没有连接任何jms):
    1.您希望立即响应交易完成。例如,酒店预订等 2.所有系统应始终处于完成处理状态。

答案 1 :(得分:0)

如果不必依赖所有可用的系统,您可能希望使用JMS(或企业消息传递)。因此,如果您的某个内部系统由于某种原因而关闭,那么当与该系统通信时,REST api接口将失败,但是当您与MOM通信时,JMS接口将不会。

对于某些MOM,您不必只使用JMS进行通信,因此可以让不同的运行时与MOM进行通信。