首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理API网关的故障

如何处理API网关的故障
EN

Stack Overflow用户
提问于 2020-02-03 12:05:49
回答 1查看 178关注 0票数 2

假设我为一个支付系统设计了一个微服务体系结构,用户只需单击UI屏幕上的pay按钮,就可以向API网关发送请求,网关将启动api调用链,以调用几个微服务。当一个micorservices在链调用中途停机或没有响应时,该如何处理?

我希望用户认为他的付款已经成功,并且不返回给他“稍后再试”我可以在某个地方保存链的状态吗?

EN

回答 1

Stack Overflow用户

发布于 2020-02-03 15:15:36

对于这种情况,使用异步通信比使用同步通信更可取。

在这种情况下;

当客户端向系统发送请求时,API网关接受请求,并将请求委托给相应的微服务。之后,该微服务向其他相关的微服务发送一个事件。消息代理通常用于此目的,消息存储在代理中,即使消费者(subcsriber)微服务关闭,消息也不会丢失。

您还可以将事件直接从api网关发送到message broker。(请参阅:https://microservices.io/patterns/apigateway.html)

为了实现原子性和一致性(当然是最终的一致性),可以使用SAGA模式。你可以通过check获取更多信息。

但是,如果您的需求是调用微服务来立即获取一些数据,并且如果此所需的微服务关闭,则此解决方案将不起作用。您应该在设计上避免微服务之间的这种耦合。在我看来,这是微服务架构中最具挑战性的部分之一。域驱动设计技术可用于确定有界上下文。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60032959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档