JMS 能做啥 REST 不能做啥

Posted

技术标签:

【中文标题】JMS 能做啥 REST 不能做啥【英文标题】:What JMS can do which REST can not doJMS 能做什么 REST 不能做什么 【发布时间】:2016-11-20 17:41:31 【问题描述】:

我想弄清楚为什么有些人在使用 REST 时会选择 JMS,所以请告诉我, JMS 能做什么 REST 不能做什么?

提前感谢您的回复。

【问题讨论】:

看看***.com/questions/9623482/… 【参考方案1】:

我们在 J2EE 中为我们的零售业务管理主数据。我们 24/7 全天候创建/修改主数据,修改后的信息必须近实时(异步)发送到多个事务应用程序。因此,我们使用 JMS 将修改推送到 IBM MQ 中的 Topic 中,并在 IIB 中将数据格式化为原生格式(COBOL/XML/Byte),然后发送到相应的接收应用程序。

在删除给定的主数据之前,我们需要确认给定的主数据是否在任何商店或仓库中剩余任何现有库存,并且我们使用 REST-JASON 对库存系统进行真实验证时间。这是一对一的同步通信,因此我们选择了 REST-JSON。

【讨论】:

【参考方案2】:

如果您使用 JMS,则可以使用消息队列。如果您有消息队列,您可以保留消息而不必担心丢失消息(REST 中的请求)。您可以扩展系统以接收消息。

【讨论】:

所以基本上,您是在告诉 jms 在接收消息方面是可靠的,而其余的则不是。这是好点。你还有什么jms可以做而rest不能做的点吗 如果使用 Message Queue 更易于扩展(许多工作人员可以在 1 个队列中完成),但 Rest 需要负载平衡服务器。 JMS 对于异步请求-应答消息传递很有用。您可以设计一个具有许多工人示例的系统:工人 A 在队列“A”-> 烹饪,工人 B 队列“B”->-> 营销,工人 C 队列“C”->-> 交付给客户。如果烹饪速度很慢,您可以创建更多 2 个工人 A 在队列 A 中接收消息进行烹饪并将消息蛋糕推送到队列 B 供工人 B 使用。 好吧,如果应用A和应用B使用rest,当应用B需要一个服务从应用A完成时(比如调用应用A中的方法),应用B可以简单地调用服务或请求在需要时为该服务提供服务。同样,如果应用 A 和应用 B 使用 jms 而不是 rest 会是什么情况,应用 B 是否可以在需要时向应用 A 请求消息,

以上是关于JMS 能做啥 REST 不能做啥的主要内容,如果未能解决你的问题,请参考以下文章

构造函数与组件WillMount; componentWillMount 能做啥而构造函数不能?

当 sleep() 不能很好地与警报一起工作时,我还能做啥“睡眠”?

Java EE 和应用程序服务器 - 我能做啥?

用 Python 可以来做啥?

开箱即用的Angular.js不能做啥,而jQuery可以做啥[关闭]

我们可以用 UCWA API (Lync) 做啥?以及我们不能用 UCWA API 做啥?