目录

一、Eureka 集群

二、本文用到的工程名列表

三、修改eurekaserver(注册中心)项目

1. 修改application.properties配置文件,如图:

2. 复制eurekaserver项目,作为集群第二个节点

3. 启动Eureka 集群的两个集群节点(8761和8762)

四、启动服务提供者项目eurekauser

 五、启动服务消费者项目eurekaconsumer

六、关闭Eureka Server 集群节点1的eurekaserver项目


一、Eureka 集群

所有的服务都要通过服务注册中心来进行信息交换,一旦服务注册中心掉线,会影响到整个系统的稳定性。所以在生产环境中,Eureka一般都以集群的形式出现的。

搭建Eureka集群,如果eureka.client.service-url.defaultZone=http://192.168.0.81:8761/eureka/属性中要使用别名而不是IP地址时,需要修改服务器的hosts文件。如在hosts文件中添加192.168.0.81 eurekaB,那么就可以改写配置为:eureka.client.service-url.defaultZone=http://eurekaB:8761/eureka/。

Eureka集群,实际上就是启动多个Eureka实例, 多个Eureka实例之间互相注册,互相同步数据,共同组成一个Eureka集群。

eureka 官方docker镜像 eureka docker集群_spring cloud

原理:在 Eureka Server 集群中,Eureka Server 之间进行数据同步,不同的 EurekaServer 之间不区分主从节点,所有节点都是平等的。如果有某一个节点宕机,Eureka Client 会自动切到新的 Eureka Server 上。Eureka Server 的连接方式,可以指定多个注册地址,即A可以即注册到B上,也可以同时注册到C上。

application.properties配置文件配置多注册中心以逗号隔开:eureka.client.service-url.defaultZone=http://localhost:8761/eureka/,http://localhost:8762/eureka/

二、本文用到的工程名列表

Eureka快速入门篇(一)中的两个项目:

eurekaserver(注册中心,server.port=8761)

eurekauser(微服务提供者,server.port=8081)

Eureka快速入门篇(二)中的项目:

eurekaconsumer(微服务消费者,server.port=8083)

三、修改eurekaserver(注册中心)项目

1. 修改application.properties配置文件,如图:

eureka 官方docker镜像 eureka docker集群_eureka_02

注:eureka.client.service-url.defaultZnotallow=http://localhost:8762/eureka/--注册到第二节点上,端口8762

#eureka服务端的实例名称,告诉Eureka它正运行在那个主机上,可以是IP、也可以是服务器上hosts文件中的别名 eureka.instance.hostname=localhost

2. 复制eurekaserver项目,作为集群第二个节点

修改第二节点的application.properties配置文件,如图:

eureka 官方docker镜像 eureka docker集群_eureka_03

注:eureka.client.service-url.defaultZnotallow=http://localhost:8761/eureka/--注册到第一节点上,端口8761

#eureka服务端的实例名称,告诉Eureka它正运行在那个主机上,可以是IP、也可以是服务器上hosts文件中的别名 eureka.instance.hostname=localhost

3. 启动Eureka 集群的两个集群节点(8761和8762)

因为节点之间互相注册的原因,先启动的节点会报错。

节点都启动成功后,就可以看到两个服务节点之间互相注册,共同组成一个集群。 如下图:

Eureka Server 集群节点1:

eureka 官方docker镜像 eureka docker集群_eureka 官方docker镜像_04

Eureka Server 集群节点2:

eureka 官方docker镜像 eureka docker集群_spring cloud_05

四、启动服务提供者项目eurekauser

修改配置文件application.properties,将服务提供者注册到集群中2个节点上:

eureka 官方docker镜像 eureka docker集群_eureka_06

启动eurekauser服务提供者完成后,两节点注册情况如下图,eurekauser注册到了节点8761上

Eureka Server 集群节点1:

eureka 官方docker镜像 eureka docker集群_eureka 官方docker镜像_07

Eureka Server 集群节点2: 

eureka 官方docker镜像 eureka docker集群_云原生_08

 五、启动服务消费者项目eurekaconsumer

修改配置文件application.properties,将服务消费者注册到集群中2个节点上:

eureka 官方docker镜像 eureka docker集群_eureka_09

 启动eurekaconsumer服务消费者完成后,eurekaconsumer注册到了节点1:8761上,没有在节点2上,如图:

Eureka Server 集群节点1:

eureka 官方docker镜像 eureka docker集群_spring_10

浏览器中访问localhost:8083/getmyjsonStr正常消费,如图:

eureka 官方docker镜像 eureka docker集群_spring_11

eureka 官方docker镜像 eureka docker集群_eureka 官方docker镜像_12

六、关闭Eureka Server 集群节点1的eurekaserver项目

Eureka Server 集群节点1的eurekaserver项目关闭后,8761的节点挂掉。Eureka Server 集群节点2,8762后台持续报错。而服务提供者eurekauser:8081和 服务消费者eurekaconsumer: 8083后台短暂报错后(我的实验中,偶尔还有报错)从新注册到 Eureka Server 集群节点2,8762上,如图:

eureka 官方docker镜像 eureka docker集群_eureka 官方docker镜像_13

 此时浏览器中访问localhost:8083/getmyjsonStr正常消费,如图:

eureka 官方docker镜像 eureka docker集群_spring_14

eureka 官方docker镜像 eureka docker集群_云原生_15