2016-06-10 182 views
0

我们有一套微服务在生态系统中相互协作。我们以前偶尔会遇到一些问题,其中一个或多个这些微服务意外崩溃。值得庆幸的是,我们已经建立了一些监测系统来实现这一点并采取纠正措施。集群微服务组件

现在,我们希望在每个微服务中都有冗余。我想更像是一个奴隶总是站立的主人/奴隶的方式,当主人离开时,奴隶会选择它。

我们是否应该考虑使用我们可以用作服务注册表的任何框架,我们在哪里注册每个微服务并允许它们被控制?有关如何使用微服务实现这种主/从体系结构的任何其他建议,这些服务可以使我们具有故障转移冗余?

回答

0

我想了几分钟,这是我目前认为最好的方法,根据经验。

有几个问题您将面临可用性。首先总是至少有一个端点。这很容易通过在多个服务器上安装来完成。在企业领域,您可以为端点使用名称,然后将其解析为多个服务器(虚拟或硬件)。你也会负载平衡它。

第二个是注册表。这是API管理软件的一个非常简单的问题。这个领域的真正好的软件并不便宜,所以这不是一个周末爱好者类型的软件。但是那里有开源的API管理解决方案。当我在企业领域工作时,我对Apigee,CA,Mashery等选项非常熟悉,因此我不推荐开源选项,并对自己感觉良好。

如果您愿意,您可以构建自己的注册表。只需要小心如何设计它,因为“所有接口点的注册表”导致服务变得更加紧密耦合。

+0

我们想要的只是一个故障转移实例,当主服务器出现故障时它将变为活动状态。它与Apache Kafka经纪人或多或少有相同的概念! – sparkr

+0

Kafka通过将所有节点注册在一个中心位置并拥有大量的软件来解决这个问题。但是,我正在思考的是开箱即​​用的笑容,因为大多数人只将卡夫卡视为消息总线,而不是解决其他领域问题的蓝图。但是,是的,拥有注册端点的中央“保证”服务是一种选择。祝你的解决方案好运。 –