微服务:REST 与消息传递
Microservices: REST vs Messaging
我听说亚马逊在其基于微服务的架构中使用 HTTP。另一种方法是使用像 RabbitMQ 或 Solace 系统这样的消息系统。我个人有使用基于 Solace 的微服务架构的经验,但从未使用过 REST。
知道 Amazon、Netflix、UK Gov 等各种大联盟实施使用什么吗?
另一个方面是,在微服务中,需要以下内容(除其他外):
* 模式匹配
* 异步消息..接收系统可能已关闭
* 发布订阅
* 缓存加载事件.. 即在启动时,一个服务可能需要从其他几个服务加载所有数据,并且应该在数据完全加载时得到通知,这样它就可以 'know' 它现在准备好了服务请求
这些方面自然是通过消息而不是 REST 来完成的。为什么有人要使用 REST(public API 除外)。谢谢。
我过去遵循的一个标准是,当关键要求是速度(并且数据丢失不是关键)时使用 Web 服务,而当关键要求是可靠性时使用消息传递。正如您所说,如果接收系统出现故障,消息将排在队列中,直到系统重新启动以处理它。如果它是一个 REST 端点并且它已关闭,请求将简单地失败。
REST API 假定仅使用 HTTP。这是石器时代的技术,不接受异步。消息传递。要在那里插入消息,我会考虑 WebSockets Gateways
- 对最终的虚拟陈述感到抱歉
我听说亚马逊在其基于微服务的架构中使用 HTTP。另一种方法是使用像 RabbitMQ 或 Solace 系统这样的消息系统。我个人有使用基于 Solace 的微服务架构的经验,但从未使用过 REST。
知道 Amazon、Netflix、UK Gov 等各种大联盟实施使用什么吗?
另一个方面是,在微服务中,需要以下内容(除其他外):
* 模式匹配
* 异步消息..接收系统可能已关闭
* 发布订阅
* 缓存加载事件.. 即在启动时,一个服务可能需要从其他几个服务加载所有数据,并且应该在数据完全加载时得到通知,这样它就可以 'know' 它现在准备好了服务请求
这些方面自然是通过消息而不是 REST 来完成的。为什么有人要使用 REST(public API 除外)。谢谢。
我过去遵循的一个标准是,当关键要求是速度(并且数据丢失不是关键)时使用 Web 服务,而当关键要求是可靠性时使用消息传递。正如您所说,如果接收系统出现故障,消息将排在队列中,直到系统重新启动以处理它。如果它是一个 REST 端点并且它已关闭,请求将简单地失败。
REST API 假定仅使用 HTTP。这是石器时代的技术,不接受异步。消息传递。要在那里插入消息,我会考虑 WebSockets Gateways - 对最终的虚拟陈述感到抱歉