一、高可用的服务注册
为了使服务注册高可用,所以,各组成部分都需要形成集群
- Eureka Server集群
- Eureka Client集群
二、Eureka Server集群实践
1.集群节点说明
服务器名称 | 角色 | 其他说明 |
---|---|---|
discovery-server-1 | Eureka Server | 注册中心第1个节点 |
discovery-server-2 | Eureka Server | 注册中心第2个节点 |
stock-provider-1 | Eureka Client(Serivce Provider) | 服务提供者第1个节点 |
stock-provider-2 | Eureka Client(Service Provider) | 服务提供者第2个节点 |
2.Eureka Server节点配置与服务启动
与单机版的Eureka Server相比,除了配置文件不一样外,其他都是一样的
(1)第一个节点配置(application.yml)
server:
port: 8001
eureka:
instance:
hostname: discovery-server-1
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://discovery-server-1:8001/eureka/,http://discovery-server-1:8101/eureka/
spring:
application:
name: item-discovery-server-1
注:
- eureka.instance.hostname:为本节点的主机名称,可以是IP,或主机名称(用主机名称,需要在hosts文件中与本机IP进行绑定)
- eureka.client.service-url.defaultZone:多个节点时,建议把所有的server节点都写上
(2)第二个节点的配置(application.yml)
server:
port: 8101
eureka:
instance:
hostname: discovery-server-2
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://discovery-server-1:8001/eureka/,http://discovery-server-1:8101/eureka/
spring:
application:
name: item-discovery-server-2
(3)在所有节点的hosts文件中,进行主机名称与IP的绑定
Linux系统在/etc/hosts下:
127.0.0.1 discovery-server-1
127.0.0.1 discovery-server-2
注:根据自身项目的主机名和IP进行对应的修改
(4)分别启动各个节点的服务
3.Eureka Client节点的配置与服务启动
与单机版的Eureka Client相比,除了配置文件中的defaultZone配置项外,其他的操作都是一样的
(1)第一个节点的配置
server:
port: 8002
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
register-with-eureka: true
fetch-registry: true
spring:
application:
name: stock-provider-1
注:将注册中心的地址指向注册中心集群节点的第一个节点
(2)第二个节点的配置
server:
port: 8802
eureka:
client:
service-url:
defaultZone: http://localhost:8101/eureka/
register-with-eureka: true
fetch-registry: true
spring:
application:
name: stock-provider-2
注:将注册中心的地址指向注册中心集群节点的第二个节点
(3)启动各客户端节点的服务
(4)在Eureka Server的控制台查看注册情况
(1)查看第1个server节点:在浏览器中输入:http://localhost:8001
- 它显示了两个注册节点,一个是指向当前节点的客户端节点,一个是注册到另一个server的客户端节点
(2)查看第2个server节点:在浏览器中输入:http://localhost:8101
- 只显示了注册到当前server的客户端节点
- 而且显示了当前server节点是和第1个server节点的复制节点