springcloud-Eureka-注册中心高可用集群搭建


Eureka注册中心高可用集群就是各个注册中心相互注册.

1.在8761配置文件中,让他的service-url指向8762,在8762配置文件中,让它的service-url指向8761

由于8761和8762互相指向对方,实际上我们构建了一个双节点的服务注册中心集群
application-eureka8761.properties

#内嵌定时tomcat的端口
server.port=8761  
#设置该服务注册中心的hostname  
eureka.instance.hostname=eureka8761
# 自己注册自己
eureka.client.register-with-eureke=false
表示不会检索其他服务
eureka.client.fetch-register=false
#指定服务注册中心的地址位置
eureka.client.service-url:defaultZone:http://eureka8762:8762/eureka/

application-eureka8762.properties

#内嵌定时tomcat的端口
server.port=8762 
#设置该服务注册中心的hostname  
eureka.instance.hostname=eureka8761
# 自己注册自己
eureka.client.register-with-eureke=false
表示不会检索其他服务
eureka.client.fetch-register=false
#指定服务注册中心的地址位置
eureka.client.service-url:defaultZone:http://eureka8761:8761/eureka/

然后在本地host配置文件中:C:Windows\System32\drivers\etc\host

127.0.0.1 eureka8761
127.0.0.1 eureka8761

2.创建两个启动入口分别叫Application8761.java和Application8762.java

运行Application8761.java时在运行配置项目Program Arguments中配置:
–spring.profiles.activate=eureka8761
在这里插入图片描述
运行Application8762.java时在运行配置项目Program Arguments中配置:
–spring.profiles.activate=eureka8762
在这里插入图片描述

3.打开两个页面测试是否注册成功

在这里插入图片描述
在这里插入图片描述

4.Eureka注册中心高可用集群测试

在要进行注册的服务中配置:

服务提供者的内嵌tomcat端口
server.port=9100
#配置服务的名称
spring.application.name=springcloud-service-provider
#eureka的连接地址
eureka.client.service-url:defaultZone:http://eureka8761:8761/eureka/,http://eureka8762:8762/eureka/

启动服务提供者服务,然后观察注册中心页面,可以看到服务会在两个注册中心上都注册成功
在这里插入图片描述
在这里插入图片描述

5.Eureka服务注册中心自我保护机制

自我保护机制是Eureka注册中心的重要特性,是一种应对网络异常的安全保护措施。他的架构哲学是宁可同时保留所有微服务(健康和不健康的都会保留),也不盲目注册任何健康的微服务,使用自我保护模式,可以让Eureka集群更加的健壮,稳定。当Eureka注册中心进入自我保护模式时,在Eureka Server首页输出警告信息。
在这里插入图片描述
在没有Eureka自我保护的情况下,如果Eureka Server在一定时间内没有接受到某个微服务实例的心跳,Eureka Server将会注销该实例,但是当发生网络分区故障时,那么微服务与Eureka Server之间将
无法正常通信。微服务本身没有问题,不应该注销这个微服务,如果没有自我保护机制,Eureka Server将会把这个微服务注销掉。
Eureka通过自我保护模式来解决,当EurekaServer节点在短时间内丢失过多客户端时,就会把这个微服务进行节点保护,一旦进入自我保护模式,EurekaServer就会保护服务注册表中的信息,不删除服务注册表中的数据。恢复后,会自我退出自我保护模式。
当然也可以使用配置项禁用自我保护模式。

eureka.server.enable-self-preservation=false

当EurekaServer自我保护模式也会给我们带来一些困扰,如果在保护器内某个服务提供者刚好非正常下线了,此时消费者就会拿到一个无效的服务实例,此时就会调用失败,对于这个问题需要服务消费者端具有一些容错机制,如重试,断路器等。
在这里插入图片描述
服务端配置:

#测试时关闭自我保护机制,保证不可用服务及时踢出
eureka.server.enable-self-preservation=false

客户端配置:

#每间隔2s,向服务端发送一次心跳,证明自己依然存活默认30s
eureka.instance.lease-renewal-interval-in-seconds=2
#告诉服务端,如果我10s之内没有给你发心跳就代表故障了,将自己踢出掉。默认90s
eureka.instance.lease-expiration-duration-in-seconds=10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值