eureka源码专栏
文章平均质量分 83
无唯~
这个作者很懒,什么都没留下…
展开
-
Eureka源码解析——客户端初始化
Eureka Client实例化有以下几个重点步骤1. 全量拉取注册表信息,放入本地2. 创建服务续约,增量拉取注册表,实例变更重新注册等一系列的定时任务原创 2022-06-05 21:43:31 · 256 阅读 · 0 评论 -
Eureka源码解析——增量拉取注册表
注意这里首先加了一个写锁,之前讲解服务注册、续约、下线的时候都是使用读锁,这里使用读锁就是为了保证这一刻注册表的数据不发生变更。至于为什么这里查询加读锁而注册,下线等修改操作加读锁还是为了减少锁竞争。> 流程解析:> 1. 遍历`recentlyChangedQueue`队列(包含服务注册,下线等变更信息,这个队列只保存三分钟),将队列的实例信息添加到一个集合中> 2. 获取全量注册表实例信息,生成一个`hashcode`,这个`hashcode`会返回给客户端,这个`hashcode`是校准使用的.原创 2022-06-05 20:48:02 · 1076 阅读 · 0 评论 -
eureka源码解析——全量拉取注册表
在自动装配的时候会装配到容器中,在的标注了注解,所以在对象构造后会回调这个方法,在方法中会调用注册表的方法,在方法中会创建多级缓存并初始化原创 2022-06-05 18:33:41 · 504 阅读 · 0 评论 -
eureka源码解析——服务故障自动剔除
服务注册到`eurekaServer`上之后,会定时`30s`发送心跳请求来进行续约,如果服务宕机了或者其他情况导致没有主动向`EurekaServer`发送服务下线请求,那么`EurekaServer`在后台会启动一个定时后,默认`60s`扫描一次注册表,看看哪些服务实例规定时间没有发送续约请求,将这些故障实例从注册表剔除。...原创 2022-06-05 17:45:57 · 517 阅读 · 0 评论 -
eureka源码解析——服务主动下线
服务主动下线,客户端请求下线接口会调用到服务端的`InstanceResource#cancelLease`处理下线,这里直接调用注册表的`cancel`方法进行服务下线原创 2022-06-05 17:18:55 · 363 阅读 · 0 评论 -
eureka源码解析——服务续约
服务续约使用过心跳来实现了,客户端会开启一个定时任务,定时向eureka server发送续约请求,然后服务端收到续约信息然后更新租约的最后发送时间,在eureka server中也会开启一个定时任务,定时扫描注册表的实例租约信息,然后看最后续约时间距离现在是不是超过了存活时间(90s),如果超过了,就将这个实例从注册表中剔除...原创 2022-06-05 17:03:48 · 274 阅读 · 0 评论 -
eureka源码解析——服务注册流程
> 1. 更新注册表信息,这里注册表就是一个`map(key是appName,value是Lease(InstanceInfo)),`这个`lease`其实就是租约的相关信息,其中会包含实例信息,`ip,port`和最后一次续约的时间戳,租期等,这里如果判断之前在注册表中就存在的话,看有没有变更过,通过变更时间来判断,如果没有,则继续使用原有的`instance`信息。如果是第一次注册肯定注册表里没有实例信息,那么就会将`expectedNumberOfClientsSendingRenew+1`,这个表示原创 2022-06-05 16:43:31 · 334 阅读 · 0 评论 -
eureka源码解析——集成到springCloud
> 在引入`eureka`的依赖之后,配置`eureka server`的时候需要我们在`springBoot`的启动类上面加个`@EnbaleEurekaServer`的注解标识启动一个`eureka server`。原创 2022-06-04 23:23:57 · 182 阅读 · 0 评论