Eureka高可用集群搭建

机器:Eureka1、Eureka2、Users
搭建成功的正常情况:

过一会儿就出现受保护的警告:

Renews threshold:期望每分钟达到的心跳次数。(默认计算方式:2 * n * 0.85,n是服务器数量,如果注册中心进行自己注册自己的话,也要算上)
因为每分钟服务实例默认向注册中心发送心跳间隔是30秒,所以是2。可以通过eureka.instance.lease-renewal-interval-in-seconds来进行设置。

续约比例默认是0.85,可以通过eureka.server.renewal-percent-threshold来设置续约比例。

如果修改了以上两个属性的默认值,那么计算方式把对应的项改成设置后的再进行计算。

Renews (last min):上一分钟的心跳次数。

主要是因为在15分钟内,实际心跳的次数未达到期望心跳次数的百分之八十五。

EurekaServer的application配置:

# 应用名
spring:
  application:
    name: EurekaServer
  profiles:
    active:
    - server1

Eureka1配置:

# 服务端口
server:
  port: 8761
eureka:
  instance:
# 注册中心地址
    hostname: eurekaServer1
  client:
# 是否从注册中心获取注册表信息
    fetchRegistry: false
# 是否向注册中心注册自己
    register-with-eureka: false
    serviceUrl:
      defaultZone: http://eurekaServer2:8762/eureka/

Eureka2配置:

# 服务端口
server:
  port: 8762
eureka:
  instance:
# 注册中心地址
    hostname: eurekaServer2
  client:
# 是否从注册中心获取注册表信息
    fetchRegistry: false
# 是否向注册中心注册自己
    register-with-eureka: false
    serviceUrl:
      defaultZone: http://eurekaServer1:8761/eureka/

eurekaServer1和eurekaServer2需要在hosts文件里配置:

127.0.0.1    eurekaServer1
127.0.0.1    eurekaServer2

Users配置:

# 应用名
spring:
  application:
    name: Users
# 引用指定文件
  profiles:
    active:
    - userserver1
eureka: 
  client: 
    serviceUrl: 
      defaultZone: 
        http://eurekaServer1:8761/eureka/,
        http://eurekaServer2:8762/eureka/

application-userserver1配置:

# 服务端口
server:
  port: 8763

windows的hosts文件位置:C:\Windows\System32\drivers\etc

要解决出现保护警告的提示有以下几种方法:

1.  关闭Eureka自我保护机制eureka.server.enable-self-preservation=false(本地自己开发还可以,但是线上环境的话不推荐)

2.  降低续约服务比例eureka.server.renewal-percent-threshold=0.49这个值是在网上大多数推荐的(这个也不推荐)

3.  开启Eureka注册中心的 fetchRegistry(是否从注册中心获取注册表信息)和 register-with-eureka(是否向注册中心注册自己)把这两个设置为true(默认是true)。

我试过第三种方法,百分百可以实现,出现自我保护的提醒概率特别小。除非是网络抖动或服务挂了。不过在服务恢复后,自我保护机制的提醒也会自动消失。如果有哪位伙伴没实现或没懂可以评论,我会尽快尽快回复。

具体的设置成这样的原理回头再研究一遍补上哈( ̄□ ̄||)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值