学科分类
目录
Spring Cloud

搭建Eureka高可用集群

通过开发第一个Eureka应用,其目的是让大家认识并体验Eureka组件的简单用法,但是,并没有体现出Eureka的高可用特性。下面我们对前面小节的Eureka应用进行改造,搭建一个如图1所示的Eureka高可用集群。

图1 Eureka集群

搭建Eureka集群的具体步骤如下:

1、更改系统hosts文件配置

由于本书的开发环境只有一台电脑,操作系统为 Windows,如果要构建集群,需要修改 hosts 文件,为其添加主机名的映射。打开C:\Windows\System32\drivers\etc\hosts 文件,添加以下内容:

127.0.0.1 server1
127.0.0.1 server2

2、改造Eureka Server

Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。我们在之前项目eureka-server的基础上进行扩展,构建一个双节点的服务注册中心集群。

(1)按照2.2.1节搭建Eureka Server的方式,再搭建一个名eureka-server-another的Eureka Server。

(2)修改项目eureka-server的全局配置文件application.yml,修改后的配置文件如例1所示。

例1 eureka-server\src\main\resources\application.yml

 1     server:
 2         port: 7000
 3     spring:
 4         application:
 5              name: eurake-server
 6     eureka:
 7         client:
 8              fetch-registry: false
 9              register-with-eureka: false
 10         service-url:
 11     defaultZone: http://server2:7009/eureka/
 12     instance:
 13           hostname: server1 

(3)修改项目eureka-server-another的全局配置文件application.yml,修改后的配置文件如例2所示。

例2 eureka-server-another\src\main\resources\application.yml

 1     server:
 2       port: 7009
 3     spring:
 4       application:
 5         name: eurake-server2
 6     eureka:
 7       client:
 8         fetch-registry: false
 9         register-with-eureka: false
 10     service-url:
 11     defaultZone: http://server1:7000/eureka/
 12     instance:
 13          hostname: server2 

3、改造服务提供者

由于图1的高可用集群有两个服务提供者,因此我们还需要搭建一个服务提供者,并改造两个服务提供者。

(1)按照前面小节搭接服务器提供者的方式,搭建一个名为eureka-provider-another的服务提供者,该服务提供者的全局配置文件内容如例3所示。

例3 eureka-provider-another\src\main\resources\application.yml

 1  server:
 2             port: 7007  
 3         spring:
 4           application:  #指定应用名称
 5             name: eureka-provider
 6          eureka:
 7             client:
 8                 service-url:
 9                    defaultZone: http://localhost:7000/eureka
 10     instance:
 11         hostname: localhost

4、改造服务消费者

这里搭建的Eureka集群只有一个服务消费者,修改项目eureka-consumer中的全局配置文件application.yml,修改后的内容如例4所示。

例4 eureka-consumer\src\main\resources\application.yml

 1     server:
 2        port: 7002
 3     spring:
 4        application:
 5          name: demo-consumer
 6     eureka:
 7       instance:
 8         hostname: localhost
 9       client:
 10      serviceUrl:
 11         defaultZone: 
 12            http://server1:7000/eureka/,http://server2:7009/eureka/

5、启动Eureka集群

依次启动两个Eureka Server、两个服务提供者、一个服务消费者。启动成功后,无论访问哪个Eureka Server,Eureka Server的注册实例都是一样的,具体效果如图2和图3所示。

图2 访问server1:7000的页面效果

图3 访问server2:7009的页面效果

点击此处
隐藏目录