在微服务架构中添加断路器模式的最佳方式是什么?它应该在微服务端(在每个微服务内),在ELB内还是在Api网关内部?最好的设计模式是什么?
发布于 2016-12-29 23:09:17
我认为不是在每个微服务中都使用,而是在使用微服务的BFF (前端的后端)中使用。你可以在https://pragprog.com/book/mnee/release-it这本书中找到一个很好的实现和例子。使用API网关的解决方案很好,有关这一点,请参阅Kong https://getkong.org/。
发布于 2021-06-30 22:58:21
至少有3个选项(如下所示)。在一般情况下,断路器“保护”对http服务的调用。如果我们认为这个服务是微服务,那么断路器就是 in the microservice本身。
API网关
在这种情况下,您使用支持断路的API网关产品。大使和Axway就是例子。另一种选择是在BFF服务中提供电路中断,以获得对后端服务的调用。

服务网格
在这种情况下,您使用支持断路的服务网格产品。Istio和特使就是一个例子。在本例中,insurance quote服务调用customer history服务。代理侧车容器执行电路中断。

断路器库
在这里,您将使用一个提供断路器支持的库。Resilience4J是我们在工作中使用的(在一些调用http服务的Spring Boot应用程序中)。

你的设计
哪一个是最好的?这取决于您的应用程序要求和基础架构约束。要记住的事情:
发布于 2019-09-28 22:34:20
我建议您将电路中断问题委托给像Hystrix这样的外部库,而不是自己实现它。Hystrix公开了许多属性,使您可以完全控制电路断路功能。
https://stackoverflow.com/questions/40815723
复制相似问题