一、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 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.client.service-url.defaultZone=http://localhost:8762/eureka/--注册到第二节点上,端口8762
#eureka服务端的实例名称,告诉Eureka它正运行在那个主机上,可以是IP、也可以是服务器上hosts文件中的别名 eureka.instance.hostname=localhost
2. 复制eurekaserver项目,作为集群第二个节点
修改第二节点的application.properties配置文件,如图:
注:eureka.client.service-url.defaultZone=http://localhost:8761/eureka/--注册到第一节点上,端口8761
#eureka服务端的实例名称,告诉Eureka它正运行在那个主机上,可以是IP、也可以是服务器上hosts文件中的别名 eureka.instance.hostname=localhost
3. 启动Eureka 集群的两个集群节点(8761和8762)
因为节点之间互相注册的原因,先启动的节点会报错。
节点都启动成功后,就可以看到两个服务节点之间互相注册,共同组成一个集群。 如下图:
Eureka Server 集群节点1:
Eureka Server 集群节点2:
四、启动服务提供者项目eurekauser
修改配置文件application.properties,将服务提供者注册到集群中2个节点上:
启动eurekauser服务提供者完成后,两节点注册情况如下图,eurekauser注册到了节点8761上
Eureka Server 集群节点1:
Eureka Server 集群节点2:
五、启动服务消费者项目eurekaconsumer
修改配置文件application.properties,将服务消费者注册到集群中2个节点上:
启动eurekaconsumer服务消费者完成后,eurekaconsumer注册到了节点1:8761上,没有在节点2上,如图:
Eureka Server 集群节点1:
浏览器中访问localhost:8083/getmyjsonStr正常消费,如图:
六、关闭Eureka Server 集群节点1的eurekaserver项目
Eureka Server 集群节点1的eurekaserver项目关闭后,8761的节点挂掉。Eureka Server 集群节点2,8762后台持续报错。而服务提供者eurekauser:8081和 服务消费者eurekaconsumer: 8083后台短暂报错后(我的实验中,偶尔还有报错)从新注册到 Eureka Server 集群节点2,8762上,如图:
此时浏览器中访问localhost:8083/getmyjsonStr正常消费,如图:
版权归原作者 人生没有第三次 所有, 如有侵权,请联系我们删除。