说明
所谓的Eureka高可用就是,配置多个Eureka注册中心,让注册中心具有高可用性。配置说明
因为需要两个以上的注册中心,所以我们将原来的Eureka注册中心,复制为两份,端口分别为:5121、5122,修改后分别启动![](https://i-blog.csdnimg.cn/blog_migrate/b3887f2ecfccc1f551470b70bc3460f1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/47c7a4aed87787ca72f46a59b1046515.png)
如果我们单独启动多个配置中心,然后服务配置多个注册中心。发现注册中心的数据不是同步的。
例如:配置分别将服务方与调用方都配置了两个注册中心的地址。
##指定注册中心的入口:
eureka.client.service-url.defaultZone=http://localhost:5121/eureka,http://localhost:5122/eureka
结果为:
注册中心1,我们发现服务方的数据在5121的注册中心
注册中心2,我们发现调用方的数据在5122注册中心上
![](https://i-blog.csdnimg.cn/blog_migrate/4f157d52f0677e1364815e69df6538ef.png)
所以,我们要解决这个两个注册中心的数据同步问题。我们只要对这个两个注册中心交叉配置,就可以配置双机热备了。
配置步骤
第一步:修改主机的hosts文件
为了让配置更加清晰,我们模拟两个注册中心的地址是有差异。所以我们通过修改hosts文件来解决。--文件位置
![](https://i-blog.csdnimg.cn/blog_migrate/0493cbeb761190a12b84736bbe295ac8.png)
--增加内容为: 127.0.0.1 eureka1
127.0.0.1 eureka2
第二步:修改eureka-server1
##服务器信息
server.port=5121
##指定Eureka服务信息
eureka.instance.hostname=eureka1
##服务入口
eureka.client.service-url.defaultZone=http://eureka2:5122/eureka
#3.是否将自身注册为服务 false表示不注册
eureka.client.register-with-eureka=false
#4.是否主动发现服务 false表示不发现
eureka.client.fetch-registry=false
第三步:修改eureka-server2
##服务器信息
server.port=5122
##指定Eureka服务信息
eureka.instance.hostname=eureka2
##服务入口
eureka.client.service-url.defaultZone=http://eureka1:5121/eureka
#3.是否将自身注册为服务 false表示不注册
eureka.client.register-with-eureka=false
#4.是否主动发现服务 false表示不发现
eureka.client.fetch-registry=false
第四步:重启两个Eureka
查看控制台,发现数据同步了![](https://i-blog.csdnimg.cn/blog_migrate/5a102c7c3f21ed915a921ec9f163cc15.png)
配置三台以上Eureka集群
第一步:修改主机的hosts文件
![](https://i-blog.csdnimg.cn/blog_migrate/5313fe80860dcb37516971873338f1e4.png)
第二步:配置文件(application.properties或者application.yml)修改
Eureka1配置文件##端口配置
server.port=5121
##主机名
eureka.instance.hostname=eureka1
##Eureka服务配置
##开放访问的路径
eureka.client.service-url.defaultZone=http://eureka2:5122/eureka,http://eureka3:5123/eureka
##设置自己不注册为服务
eureka.client.register-with-eureka=false
Eureka2配置文件
##端口配置
server.port=5122
##主机名
eureka.instance.hostname=eureka2
##Eureka服务配置
##开放访问的路径
eureka.client.service-url.defaultZone=http://eureka1:5121/eureka,http://eureka3:5123/eureka
##设置自己不注册为服务
eureka.client.register-with-eureka=false
Eureka3配置文件
##端口配置
server.port=5123
##主机名
eureka.instance.hostname=eureka3
##Eureka服务配置
##开放访问的路径
eureka.client.service-url.defaultZone=http://eureka1:5121/eureka,http://eureka2:5122/eureka
##设置自己不注册为服务
eureka.client.register-with-eureka=false
第三步:核对是否成功
--进入任何一个Eureka后台,确认是否检测到另外两台的Eureka了![](https://i-blog.csdnimg.cn/blog_migrate/e744e52f55fd804e8d00d0c3f3053c2c.png)
--核对数据是否同步了没有,查看注册实例是否都是一致的。
![](https://i-blog.csdnimg.cn/blog_migrate/21ad7b62c1e5c84ee290a2ab89fabdd5.png)