0

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

发布订阅或 p2p 通信都需要,

当我第一次开始考虑这种实现时,我计划在前面制作一个 REST api,REST api 将与 JMS 总线进行通信。JMS 总线具有提供内部系统之间通信的能力。

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

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

4

2 回答 2

3

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

  1. 如果您的生产者以比消费者更高的速率发送消息,那么持久消息传递将有所帮助。这也可能意味着您对稍后处理的事务/消息没问题。
  2. 并非所有系统都一直处于运行状态。
  3. 您需要一个发布订阅机制(主题)。
  4. 消息不是关键的,当负载高时丢弃旧消息。

使用 REST API(未连接任何 jms)的原因:
1. 您希望立即响应事务已完成。例如,酒店预订等。
2. 所有系统都应始终处于运行状态以完成处理。

于 2014-08-06T15:42:04.613 回答
0

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

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

于 2014-08-06T10:38:11.587 回答