Eureka简介
1、Eureka实现了微服务的服务治理功能,Spring Cloud Eureka提供了 Eureka Server服务端和Eureka Client客户端,服务端即是Eureka服务注册中心(相当于dubbo架构中zookeeper的功能)。标识了Eureka Client客户端的服务,可以向Eureka Server服务端注册服务和发现服务。
2、Eureka Client客户端具备一个内置的使用轮询负载算法的负载均衡器,在微服务启动之后,将会向Eureka Server发送心跳(默认周期为30秒),如果Eureka Server在多个心跳周期内没有收到某个节点的心跳,则会将服务从服务列表中移除(默认是90秒,即3个周期)。
3、Eureka中Eureka Server与Eureka Client的关系如下:
1)、eureka server是服务端,负责管理各个微服务的注册和发现
2)、微服务的生产方eureka client可以将服务注册到eureka server中
3)、微服务的消费方eureka client需要从eureka server中获取需要调用服务的地址,进行远程调用
Eureka的自我保护机制
1、当Eureka Server 在一定时间内(默认90秒)没有接收到某个微服务的心跳,Eureka Server会从服务列表将此服务实例注销。但是如果出现网络异常情况(微服务本身是正常的),微服务与Eureka Server之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是正常的,此时本不应该注销这个微服务。
2、Eureka Server有一种 “自我保护模式” 来解决这个问题——当Eureka Server在短时间内丢失过多客户端时(可能发生了网络故障),此时Eureka Server会进入自保护模式,一旦进入该模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢后,该Eureka Server会自动退出自我保护模式。
3、开发阶段,建议关闭自我保护机制:
eureka.server.enable-self-preservation=false # 禁用自我保护模式
来源:CSDN
作者:songsongDBB28
链接:https://blog.csdn.net/weixin_43231076/article/details/104166305