透彻理解Spring Cloud系列(二三)——Ribbon初始化流程:整合Eureka 本章主要讲解了与Eureka整合使用时,Spring Cloud Netflix Ribbon的初始化流程,整体流程还是比较清晰的,就是初始化并注入了一些与Eureka相关的Ribbon核心组件。 2019-07-29 浏览(1,562) 评论(0) 阅读全文
透彻理解Spring Cloud系列(二十)——Spring Cloud Eureka:注解式启动Eureka原理 本章讲解了Spring Cloud Eureka启动的核心原理,看懂了Netflix Eureka的源码后,再看Spring Cloud其实就一目了然了。 2019-07-26 浏览(763) 评论(0) 阅读全文
透彻理解Spring Cloud系列(十九)——服务发现注册:集群同步原理 本章介绍了Eureka-Server的集群同步原理。Eureka-Server进行集群数据同步时,是将自身作为Eureka-Client,同步处理请求到其它Server节点,本质是基于Jersey调用其它所有的Eureka-Server的HTTP/RESTFUL接口。 2019-07-25 浏览(1,787) 评论(0) 阅读全文
透彻理解Spring Cloud系列(十八)——服务注册发现:自我保护机制 本章主要讲解了Eureka的自我保护机制,Eureka进入自我保护模式的条件是上一分钟实际收到的心跳总数小于某个阈值,这个阈值是通过应用实例数乘以一个百分比得到的。 Eureka在这个机制的代码实现上,存在很多问题,生产上不建议启用自我保护模式。 2019-07-24 浏览(1,158) 评论(0) 阅读全文
透彻理解Spring Cloud系列(十七)——服务注册发现:服务剔除(eviction)机制 本章讲解了Eureka服务剔除机制的原理。核心流程就是Eureka-Server端有一个定时任务,每隔60s会检测租约过期的实例,然后分批随机剔除。 服务剔除的重点是理解补偿时间机制和租约过期判断逻辑,补偿时间的本质是为了补偿任务延迟执行而消耗的毫秒数,租约过期判断则有一个bug,租约有效期并不是默认的配置90s,而是两倍的配置时间,即180秒。 2019-07-23 浏览(2,698) 评论(0) 阅读全文
透彻理解Spring Cloud系列(十六)——服务注册发现:服务下线(cancel)机制 本章主要讲解了Eureka的服务下线(Cancel)机制,本质就是Eureka-Client发送一个HTTP/DELETE请求到Eureka-Server端。Eureka-Server端接受到请求后,在自己的注册表中删除应用实例和对应的租约,然后将该实例添加到最近变化队列中。 2019-07-22 浏览(596) 评论(0) 阅读全文
透彻理解Spring Cloud系列(十五)——服务注册发现:心跳续租(renew)机制 本章主要讲解了Eureka的心跳续租机制,本质就是Eureka-Client通过定时调度任务,每隔一段时间发送一次HTTP/PUT请求到Eureka-Server端。Eureka-Server端接受到请求后,在自己的注册表中找到应用实例对应的租约,然后更新租约的时间戳。 2019-07-21 浏览(2,486) 评论(0) 阅读全文
透彻理解Spring Cloud系列(十四)——服务注册发现:增量拉取注册表及Hash比对 本章主要讲解了Eureka进行增量拉取注册表的核心流程及原理。Eureka在设计这块时,有两个地方比较值得我们借鉴: 增量数据的设计思路和数据同步的Hash值比对机制。 2019-07-20 浏览(1,492) 评论(0) 阅读全文
透彻理解Spring Cloud系列(十三)——服务注册发现:全量拉取注册表及多级缓存 本章讲解了Eureka的全量拉取注册表流程,以及Eureka-Server端的注册表多级缓存机制,核心是缓存注册表的多级读取与三种过期策略,读者可以结合源码加深理解。 2019-07-19 浏览(1,070) 评论(0) 阅读全文
透彻理解Spring Cloud系列(十二)——服务注册发现:Eureka-Server接受注册(register) 本章讲解了Eureka-Server接受服务注册的整体流程。整个过程还是很清晰的,核心逻辑就是`AbstractInstanceRegistry.register()`。AbstractInstanceRegistry内部有一个registry属性,这个就是原始注册表,里面保存了应用名与应用实例/租约的映射关系。 2019-07-18 浏览(2,272) 评论(0) 阅读全文