我听说亚马逊在其基于微服务的架构中使用了 HTTP。另一种方法是使用像 RabbitMQ 或 Solace 系统这样的消息传递系统。我个人有使用基于 Solace 的微服务架构的经验,但从来没有使用过 REST。
知道亚马逊、Netflix、UK Gov 等各种大联盟实现使用什么吗?
另一个方面是,在微服务中,需要以下内容(除其他外):
* 模式匹配
*异步消息..接收系统可能已关闭
* 发布订阅
*缓存加载事件..即在启动时,服务可能需要从其他几个服务加载所有数据,并且应该在数据完全加载时得到通知,以便它可以“知道”它现在准备好服务要求
这些方面自然是通过消息传递而不是 REST 完成的。为什么任何人都应该使用 REST(公共(public) API 除外)。谢谢。
最佳答案
我过去遵循的一个标准是在关键要求是速度(并且数据丢失不是关键)时使用 Web 服务,而在关键要求是可靠性时使用消息传递。就像你说的,如果接收系统宕机了,一条消息将放在一个队列中,直到系统恢复处理它。如果它是一个 REST 端点并且它已关闭,则请求将简单地失败。
关于rest - 微服务:REST 与消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41010290/