1.项目概要
本章内容是基于上个章节内容
第三章 SpringCloud 使用Erueak服务注册中心 在此基础上增加了注册中心集群的功能。
在生产环境下,保证整个架构的各个环节都没有单点故障是一个基本要求,而注册中心承载着服务注册和服务端负载均衡的功能,其稳定性要求更高,因为一旦Eureka宕机故障,将会对整个的服务体系造成严重的灾难。在这个示例中,我们将尝试搭建一个3个节点的Eureka集群,目标架构如下:
2.Eureka服务器端改造
a)host绑定
我们将在本地上启动三个Eureka服务进程来模拟3个节点,在生产环境下,这个3个节点将会部署在不同的服务器i节点上,我们对本机的host进行绑定
127.0.0.1 eureka1 eureka2 eureka3
b)增加3个profile配置文件
增加3个properties文件,分别对应了3个不同的profile,这个三个profile中定义了不同的端口号和eureka地址
application-8081.properties 内容
server.port=
8081
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=
http://eureka1:8081/eureka/,http://eureka2:7081/eureka/,http://eureka3:6081/eureka/
application-7081.properties 内容
server.port=
7081
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=
http://eureka1:8081/eureka/,http://eureka2:7081/eureka/,http://eureka3:6081/eureka/
application-6081.properties 内容
server.port=
6081
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=
http://eureka1:8081/eureka/,http://eureka2:7081/eureka/,http://eureka3:6081/eureka/
c)启动三个eureka的进程
在EureakApplication.main中点击Run As -> Run Configurations,如图
会弹出如下图所示界面,在这个界面中我们可以选择启用哪个profile,
我们启动三个不同端口的eureka,因此需要依次选择3个不同的profile,然后点击Run按钮
c)查看运行效果
输入注册中心web地址:
http://localhost:8081/
可以看到注册中心中已经有3个节点的信息了,但是为什么这个3个节点信息都是在unavailable-replicas里面呢,检查配置项,发现是因为我们把eureka.client.register-with-eureka设置成了false,并且没有设置当前节点的host,如图所示
将其修改下,然后重启
再次访问:
可以看出,我们访问eureka1:8081的时候,replicas是eureka2和eureka3,访问其他节点时,出现的也是另外两个节点
3.服务提供方UserService改造
a)修改项目配置项
打开springcloud-message工程的application.properties文件
将修改eureka的地址指向3个注册中心地址
eureka.client.serviceUrl.defaultZone=http://eureka1:8081/eureka/,http://eureka2:7081/eureka/,http://eureka3:6081/eureka/
b)启动服务提供者user service