微服务:REST与消息传递

Apu*_*ngh 19 architecture rest messaging microservices

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

Ria*_*Nel 21

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

  • +1,你可能想要考虑同步通信(REST)的耦合含义,如果一个失败,它的所有依赖都会失败,所以除了丢失数据之外,它还会引起连锁反应,从而导致整个系统崩溃. (5认同)
  • 一般来说,消息传递应用程序更容易集成,因为您可以将应用程序逻辑与消息传递端点分离,这使得应用程序更易于维护且更可重用。然而,开发消息传递端点可能是血与泪的过程。如果您只想构建单一用途的应用程序,那么最好使用 REST。 (2认同)