Eureka补充(仅供学习参考)

Eureka的高可用

说明

所谓的Eureka高可用就是,配置多个Eureka注册中心,让注册中心具有高可用性。

配置说明

因为需要两个以上的注册中心,所以我们将原来的Eureka注册中心,复制为两份,端口分别为:5121、5122,修改后分别启动

如果我们单独启动多个配置中心,然后服务配置多个注册中心。发现注册中心的数据不是同步的。

例如:配置分别将服务方与调用方都配置了两个注册中心的地址。

##指定注册中心的入口:
eureka.client.service-url.defaultZone=http://localhost:5121/eureka,http://localhost:5122/eureka

结果为:
注册中心1,我们发现服务方的数据在5121的注册中心



注册中心2,我们发现调用方的数据在5122注册中心上

所以,我们要解决这个两个注册中心的数据同步问题。我们只要对这个两个注册中心交叉配置,就可以配置双机热备了。

配置步骤

第一步:修改主机的hosts文件

为了让配置更加清晰,我们模拟两个注册中心的地址是有差异。所以我们通过修改hosts文件来解决。
--文件位置

--增加内容为: 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

查看控制台,发现数据同步了

配置三台以上Eureka集群

第一步:修改主机的hosts文件

第二步:配置文件(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了

--核对数据是否同步了没有,查看注册实例是否都是一致的。

Eurka的自我保护机制

Application Service 在启动后,每隔30s会向Eurka Server发送一次心跳来证明自己可用
在这里插入图片描述
当Eurka Server 90s没有收到心跳后,会认为提供者已经宕机,进行销毁。
在这里插入图片描述
Eureka中有一种自我保护机制。当15分钟内超过85%的服务提供者都没有正常的心跳包时,Eureka认为Server和Client之间出现了网络问题。这个时候将不在因为没有收到心跳而销毁实例。Client依然可以访问Server,但是Server不会把内容同步到其他Server中。当网络稳定后,Server会把注册的信息同步到其他Server中。
在Eureka中自我保护机制默认为开启的:
在这里插入图片描述
如何关闭自我保护机制:

eureka:
  server:
    # 关闭自我保护
    enable-self-preservation: false
    # 扫描失效服务的时间间隔
    eviction-interval-timer-in-ms: 10000

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值