Architecture 微服务体系结构中的可用性

Architecture 微服务体系结构中的可用性,architecture,microservices,high-availability,Architecture,Microservices,High Availability,我正在学习将基于遗留(单片)架构迁移到micro services architect。我可以使用哪些技术来确保系统的可用性?如何在体系结构中实现?微服务是一个非常广泛的主题,对于体系结构问题,我建议您阅读Sam Newman和/或Susan Fowler的文章,以了解更多关于它们的信息 在太空船层面上回答一个问题“如何确保我的整个解决方案在服务不可用时不会崩溃?”(我假设这是您正在寻找的),您有两个选择: 当您所依赖的服务失败时重试—Netflix就是这样做的 如果需要,您可以手动执行,或者如

我正在学习将基于遗留(单片)架构迁移到micro services architect。我可以使用哪些技术来确保系统的可用性?如何在体系结构中实现?

微服务是一个非常广泛的主题,对于体系结构问题,我建议您阅读Sam Newman和/或Susan Fowler的文章,以了解更多关于它们的信息

在太空船层面上回答一个问题“如何确保我的整个解决方案在服务不可用时不会崩溃?”(我假设这是您正在寻找的),您有两个选择:

  • 当您所依赖的服务失败时重试—Netflix就是这样做的 如果需要,您可以手动执行,或者如果您在Java堆栈上,例如。

  • 服务之间通信的队列最好是PaaS队列系统(AWS SQS、Azure ServiceBus),因为管理高可用队列平台本身就是一项挑战


  • 如果这不是你想问的问题,请更具体一些:)或者先读上面提到的书,它们应该回答微服务领域的许多初始问题(或者至少让你意识到潜在的挑战)。

    电路模式如何?它是否也适用于Availability@Lech MigdalGood point,断路器是Hystrix提供给您的一件开箱即用的好东西:)@user387772通过三个服务创建了简单的体系结构,如何在我的体系结构中反映断路器。我还添加了异步调用队列以确保性能。是否所有三个服务都需要连接到同一队列?这会提高绩效吗?如何在架构和重试中反映断路器,如您前面所述@老实说,我建议两种阅读方式,一种更通用的方式,同时也讨论使用队列和特定断路器。队列实际上不会提高性能,但有助于提高可用性(并可能根据队列大小扩展使用者)。至于把断路器放在架构图上,在我看来这更多的是一个实现细节,所以我将把它作为一个连接的注释。回退/重试/失败行为的具体细节可以稍后确定。因此,队列需要在所有微服务(如帐户、库存、发货)之间使用?还是只需要将帐户和库存连接到队列?“为什么?”莱赫·米格达尔说