首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Consul集群实现容错

利用Consul集群实现容错
EN

Stack Overflow用户
提问于 2018-09-27 11:14:02
回答 1查看 493关注 0票数 3

我使用本地主机中的不同端口创建了consul服务器集群。

为此,我使用了以下命令。

服务器1:

代码语言:javascript
复制
consul agent -server -bootstrap-expect=3 -data-dir=consul-data -ui -bind=127.0.0.1 -dns-port=8601 -http-port=8501 -serf-lan-port=8303 -serf-wan-port=8304 -server-port=8305 -node=node1

服务器2:

代码语言:javascript
复制
consul agent -server -bootstrap-expect=3 -data-dir=consul-data2 -ui -bind=127.0.0.1 -dns-port=8602 -http-port=8502 -serf-lan-port=8306 -serf-wan-port=8307 -server-port=8308 -node=node2 -join=127.0.0.1:8303

服务器3:

代码语言:javascript
复制
consul agent -server -bootstrap-expect=3 -data-dir=consul-data1 -ui -bind=127.0.0.1 -node=node3 -join=127.0.0.1:8303

然后,我使用spring创建了两个微服务,名为service_Aservice_B

Service_B调用service_A来获取一些数据。

这两个服务都在上面的一个服务器上注册。

application.properties:

代码语言:javascript
复制
spring.cloud.consul.port=8501  #For service_A
spring.cloud.consul.port=8502  #For service_B

这很好,因为Service_B发现Service_A没有任何问题。

现在,当我杀死注册service_A的领事服务器时,系统无法给出结果,因为Service_B找不到Service_A

我应该如何使这个系统容错,这意味着即使领事服务器失败,在该服务器注册的服务也会自动在集群中可用的另一台服务器上注册。

此外,我需要知道领事如何在服务注册和发现方面实现高可用性和容错。希望你能明白这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-08 06:02:49

显然,您可以在本地计算机中部署领事集群,但不能期望在同一台本地计算机中存在任何恢复机制或容错。这是因为您的spring服务(service_A & service_B)已经配置为标识运行在bootstrap.yml下给定领事服务器端口中的领事服务器(默认为8500)。

代码语言:javascript
复制
 spring:
   cloud:
    consul:
     config:
      watch:
       enabled: true
     port: 8500
     discovery:
      instanceId: ${spring.application.name}:${random.value}

因此,每个服务都会发现运行在8500端口以下的领事服务器(您可以随意更改它)。如果在同一台本地计算机中运行领事群集,则不能将相同的端口号(8500)分配给需要标识的每个群集节点。为了在同一个ip地址下运行,它将是不同的。要实现这一点,您将需要在具有相同端口号8500的不同ip地址下部署每个领事节点。

8301是用来处理局域网中流言的serf端口。即使这个端口在每个节点中也可以是相同的,以维护集群的互连。

实现这一目标的最简单方法是在AWS VPC中使用私有子网。

然后,您可以为每个子网节点分配不同的配置,每个服务器节点的端口号都是相同的,这样就可以通过@EnableDiscoveryClient注释的services_A & service_B来识别它。

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

https://stackoverflow.com/questions/52535678

复制
相关文章

相似问题

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