连接微服务并允许一个不可用

时间:2018-01-25 11:32:30

标签: microservices

我是微服务架构的新手,我发现在模型下可以通过HTTP请求从另一个调用微服务。但是,我读到如果服务停止,所有其他服务仍应运行。 我的问题是,这是如何实现的?

例如,处理所有Car记录操作的微服务可能需要访问处理Vehicle数据的服务。如果该服务停止或没有响应,Car Microservice如何完成它的操作?

1 个答案:

答案 0 :(得分:2)

您通常应该考虑微服务之间几乎为零的同步通信(如果您仍然想要同步通信,请尝试考虑断路器,它允许您的服务能够响应,但有逻辑错误消息,如果没有断路使用的相关服务也会发生故障这可以通过质疑微电脑的一致性要求来实现。

有时候这些东西不是直接可见的,例如:假设有两个服务订单服务,客户服务和订单服务公开一个api,即为客户ID下订单。而且业务人员说你不能为未知客户下订单

一个实施来自您同时调用客户服务的订单服务----在这种情况下,客户服务停止将影响您的服务,现在让我们确实需要问题。

由于客户只是下订单并且有人从客户服务中删除了该客户,因此现在我们有一个不属于客户的订单。无法保证一致性。

在新的溶胶中。我们说允许订单服务下订单而不检查客户ID并执行以下操作之一:

  1. 使用ProcessManager检查客户有效性并将订单状态更新为无效,并在使用ProcessManager删除客户时将订单状态更新为无效或执行业务逻辑
  2. 根本不检查,因为下订单不计算事情,当此订单将在发送过程中,服务无论如何都会检查客户状态
  3. 这里的声明是尝试在微服务之间实现更多的异步通信,大多数情况下你都可以找到sol。在业务所需的一致性。但是,如果您的企业想要100%检查它,您必须拨打其他服务,如果其他服务中断,您的服务将出现逻辑错误。