搭建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的页面效果