Asynchronous 微服务异步体系结构,用于实现相互关联的服务
我有一个关于相互关联的服务的微服务架构的问题。 例如 让我们思考一下电子商务中的塞纳里奥 我们有BuyProduct端点和对此端点的请求Asynchronous 微服务异步体系结构,用于实现相互关联的服务,asynchronous,microservices,backend,Asynchronous,Microservices,Backend,我有一个关于相互关联的服务的微服务架构的问题。 例如 让我们思考一下电子商务中的塞纳里奥 我们有BuyProduct端点和对此端点的请求 浏览器请求 BuyProduct执行。 BuyProduct有三个服务呼叫 1) 支付服务电话 如果支付服务失败 返回false 否则 继续 2) 股票服务电话 如果库存服务失败 返回false 否则 继续 3) 帐户服务呼叫 如果帐户服务失败 返回false 否则 继续 返回浏览器成功或失败 在本例中,当从一个服务调用传递到另一个服务时,我假设为成功或失败状
BuyProduct有三个服务呼叫
1) 支付服务电话
如果支付服务失败
返回false
否则
继续
2) 股票服务电话
如果库存服务失败
返回false
否则
继续
3) 帐户服务呼叫
如果帐户服务失败
返回false
否则
继续
当我们认为这个senario是全部还是无时,我们能做什么呢?如果您使用消息代理使它异步,那么您将不得不处理消息代理的概念。这意味着在很短的一段时间内(希望如此),您将处理付款,但没有更新库存和帐户状态 然后,您的代码必须能够处理不一致性。例如,只剩下一件商品,两位客户同时购买了该商品。对支付服务的调用将对这两种服务都有效,但对股票服务的调用之一将失败 有助于管理此类数据一致性问题的微服务模式称为。saga基本上是一种协调多个微服务以确保数据保持一致的方式协同工作的机制。既然您提到您正在探索MessageBroker的使用,那么您可能想看看基于编排的方法 1)如果我们呼叫支付服务并获取paymentId并将此paymentId发送到库存服务,我们将怎么做?2)如果我们必须成功返回已完成的付款和库存,我们将怎么做?RESTAPI或websocket。听起来RESTAPI不是解决方案?对吗?