
eureka 源码高级结构图
1:eureka client 如何向eurekaServer 注册信息?
在eureka client 启动的时候 通过Http请求方式:源码如下:
eurekaServer 端提供给client注册信息的接口:
@POST@Consumes({"application/json", "application/xml"})public Response addInstance(InstanceInfo info,@HeaderParam(PeerEurekaNode.HEADER_REPLICATION) String isReplication) {...//省略代码registry.register(info, "true".equals(isReplication));return Response.status(204).build(); // 204 to be backwards compatible}
2 服务续约 如何实现?
定时器向server端发送心跳,时间间隔30s,
3 eurekaServer 何时剔除服务?
当90s没有收到服务续约的心跳
以上两个参数均可配置,但是不建议修改。默认分别为30s与90秒
eureka.instance.leaseRenewalIntervalInSecondseureka.instance.leaseExpirationDurationInSeconds
4 eureka client 如何获取注册信息列表?
eurekaClient 定时器 每隔30s 向eurekaServer 获取注册信息,将其换存在本地,方便调用其他服务,
5 服务下线
eurekaClient 向eurekaServer 发送下线通知,此后该eurekaClient 注册信息将从eurekaServer注册信息表里删除。下线即将调用:
DiscoveryManager.getInstance().shutdownComponent();
6 eureka 自我保护机制
这里的保护是指 保护eurekaCLient 实例注册信息。
阀值数据:15分钟 75%。
简单说:eureka server 会统计在15分钟 client 没有续约的client 是否低于85%。如果低于,会将zhe xie 实例保护起来【让这些实例不会过期】
如果将保护机制打开的话 会出现一个问题:如果一个服务提供者 此时挂掉了,但是注册信息没有过期。此时恰好一个服务消费者调用了这个服务,那么将出现调用失败的情况,此时就是断路器发挥作用的时候。
====
如何关闭eurekaServer 自我保护机制【不推荐】
eureka.server.enable-self-preservation=false
7 eureka 自注册模式/
高可用集群搭建原理就是利用了这个。
文章转载自纯洁的明依,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




