搭建Eureka的高可用集群

用了注册中心后,所有的服务都要通过注册中心来进行信息交换。注册中心的稳定性非常重要,一旦注册中心掉线,将会影响到整个系统的稳定性。

 

所以在实际开发中,Eureka一般都是以集群的形式出现的。

 

Eureka Server集群中的节点通过点对点通信的方式共享服务注册表。

下面我们搭建一个3个Eureka Server的集群。

前面单个注册中心实例名称是localhost,现在是集群,不能都是localhost,所以需要配置本机hosts,来实现本机域名映射。

打开C:\Windows\System32\drivers\etc中的hosts文件,添加配置,如程序清单10-2所示。

 然后,为了方便,我们直接在第9章创建的Eureka Server中通过增加YAML配置的方式添加两个Eureka Server。

能这样添加是因为多个YAML文件可以写在一起,并且IDEA支持通过指定不同配置启动多个同一项目。

我们先注释掉之前的配置,然后添加配置,如程序清单10-3所示。

 

 

 

 

然后,我们修改order微服务配置中的注册中心地址,如程序清单10-4所示。

 

 

先注释掉之前的地址,再添加一个指向注册中心server1的地址。

最后我们启动3个注册中心,再启动order微服务。

当启动前两个注册中心时可能会出现连接超时的异常,因为这3个注册中心通过互相连接共同组成注册中心集群,先启动的必然无法连接到后启动的,这时只需要等待启动所有的就行,因为虽然有连接超时异常,但每过一定时间会尝试再次连接,最终都会正常运行。

启动完成后,我们分别访问这3个注册中心,如图所示。可以看到,尽管我们只把order微服务注册到了server1,但server2和server3中也有order微服务的注册信息。

 

 

在这个集群架构中,不区分主从节点,所有节点都是平等的。即使某一个节点宕机,Eureka Client也会自动切换到新的Eureka Server上,从而提高整个注册中心的可用性。

 

 

posted @ 2022-12-14 11:00  cnetsa  阅读(203)  评论(0编辑  收藏  举报