首先,上述答案是正确的,建议您需要以更好的方式对您的微服务进行调整。
现在如果可扩展性是您的关注点(微服务之间的许多api调用)。
我强烈建议您验证在第一级确实需要多少约束,以及您可以以异步方式执行多少约束。我的意思是在分布式环境中我们实际上不需要同时验证所有的东西。
有时这些东西不是直接可见的,例如:假设有两个服务订单服务,客户服务和订单服务公开一个api,即为客户ID下订单。而且业务人员说你不能为不知名的顾客下订单
一个实现来自您同时调用客户服务的订单服务——在这种情况下,客户服务停止将影响您的服务,现在让我们确实需要问题。
因为客户只是下订单并且有人从客户服务中删除了该客户,所以我们有一个不属于客户的订单。不能保证一致性。
在新的溶胶。我们说允许订单服务下订单而不检查客户ID并执行以下操作之一:
使用ProcessManager检查客户有效性并将订单状态更新为无效,并在使用ProcessManager删除客户时将订单状态更新为无效或执行业务逻辑
根本不检查,因为下订单不算数,当这个订单将在发货过程中,服务无论如何都会检查客户状态
通过这种方式,您的API命中率会降低,并且会产生更好的独立服务