jmd*_*dev 43 rest integration asynchronous jms synchronous
除了特定问题的异步/同步特性,并考虑到MOM(在这种情况下选择了JMS)提供免费的额外功能,如负载平衡和其他功能,在选择JMS而不是REST时还可以考虑其他什么,反之亦然?
谢谢
Tom*_*ard 50
始终使用REST.它是当今最先进,最先进,可扩展的集成方法.只需使用硬件或软件HTTP负载均衡器即可实现基于REST的服务的负载均衡,并且可以将其视为与JMS中的负载平衡一样免费.
MOM (面向消息的中间件)无法轻松扩展(但可以扩展到足以满足您的需求).REST在Web规模上运行.
妈妈没有规模经济.对于数据检索请求,每次请求特定数据时,必须将另一个消息发送到服务器并由服务器响应.在基于REST的系统中,可以通过HTTP缓存为相同数据的请求提供服务.这意味着随着请求量的增加,基于MOM的系统将看到服务器负载以与请求相同的速率增加.基于REST的系统将看到服务器负载增长的速度低于请求.
妈妈会用保证交付的火灾和遗忘信息诱惑你,只会咬你的监管链问题.
MOM对于同步请求 - 回复很糟糕,因为当服务器关闭时它会慢慢失败(即等待超时).当请求失败时,您希望它快速失败.如果服务器关闭,对基于REST的服务的HTTP请求将立即失败(在TCP连接上).
MOM对于异步请求 - 回复消息传递非常有用,但是您将面临在请求和回复之间存储状态的问题(提示:您的选项是文件或常规数据库,消息或NoSQL)数据库).通常额外的实施工作不值得异步性的感知优势.如果您确实需要,基于REST的服务也会支持异步请求.在这种情况下,202接受是你的朋友.
最后,使用缓存允许基于REST的系统实现基于拉的集成,这种集成更容易支持.例如,假设我们想要将数据从系统A移动到系统B.MOM方法是将消息从A发送到B.基于REST的方法是在A中创建数据馈送服务(如RSS提要) B轮询新数据(与RSS阅读器轮询新文章的方式相同).当B失败时,在MOM示例中,支持团队将需要监视消息队列以确保它们不会溢出,而其他人则将B备份.在REST示例中,支持团队只需要担心让B备份.A失败时没有太大区别.在MOM示例中,B不知道也不关心.在REST示例中,B确实知道A已经关闭,但它仍然不关心,因为A显然没有来自A的新数据.最初,基于拉取的集成的轮询要求接缝非常低效,但是HTTP缓存使得这不是问题.
换句话说,不是投资JMS服务器,而是投资一个好的缓存HTTP负载均衡器.
Nix*_*Nix 20
你无法比较这两种技术.
REST是一种服务/模式,为您提供访问无状态资源的有组织方式.
MOM Systems/JMS是一种在系统之间共享消息的模式.它关于数据,数据以可靠的方式输出.
您无法将JMS与REST进行比较,因为它们可以解决不同的问题.
但是,如果你的问题更多,那么我需要一个用于JMS队列的REST接口吗?在所有情况下,我看到人们使用REST来保护瘦客户端免受逻辑错误的影响,以便在JMS中对消息进行排队.例如,如果你有一个想要与JMS交谈的Android客户端,那么将其推送到"休息"界面然后转换并推送到JMS就更加难以做到这一点.
归档时间: |
|
查看次数: |
24848 次 |
最近记录: |