微服务:REST与消息传递

时间:2016-12-07 05:49:29

标签: rest architecture messaging microservices

我听说亚马逊使用HTTP作为基于微服务的架构。另一种方法是使用RabbitMQ或Solace系统之类的消息传递系统。我个人有基于Solace的微服务架构的经验,但从未使用过REST。
知道亚马逊,Netflix,英国政府等各种大联盟实施的用途是什么? 另一方面是,在微服务中,需要以下事项(除了其他事项):
*模式匹配
*异步消息传递..接收系统可能已关闭 *发布订阅
*缓存加载事件..即在启动时,服务可能需要加载来自其他几个服务的所有数据,并且应该在数据完全加载时得到通知,以便它可以“知道”它现在可以服务了要求
这些方面通过消息而不是REST自然完成。为什么要有人使用REST(公共API除外)。感谢。

2 个答案:

答案 0 :(得分:17)

我过去遵循的一个标准是当关键要求是速度(并且数据丢失并不重要)时使用Web服务,并且当关键要求是可靠性时使用消息传递。就像你说的那样,如果接收系统关闭,一条消息就会排在队列中,直到系统重新启动来处理它。如果它是一个REST端点而且它已关闭,请求将会失败。

答案 1 :(得分:-5)

REST API假定仅使用HTTP。它是相当石器时代的技术,不接受异步。消息。要在那里插入消息,我会考虑WebSockets网关 - 最终虚拟陈述