springcloud学习笔记——eureka

时光毁灭记忆、已成空白 提交于 2020-02-04 12:46:09
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 # 禁用自我保护模式

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!