Eureka源码解析系列文章汇总
程序员文章站
2022-03-20 16:54:34
先看一张图 0 这个图是Eureka官方提供的架构图,整张图基本上把整个Eureka的核心功能给列出来了,当你要阅读Eureka的源码时可以参考着这个图和下方这些文章 EurekaServer EurekaServer就是我们常说的服务端 Eureka服务端的启动可参考这篇文章 "EurekaSer ......
先看一张图
0
这个图是eureka官方提供的架构图,整张图基本上把整个eureka的核心功能给列出来了,当你要阅读eureka的源码时可以参考着这个图和下方这些文章
eurekaserver
eurekaserver就是我们常说的服务端
eureka服务端的启动可参考这篇文章eurekaserver自动装配及启动流程解析
它维护了一张服务注册表,在这个服务注册表中包含了所有的客户端信息
当服务端启动时会做这么几个事情:
- 向集群中的其他服务端发起数据同步请求:eureka应用注册与集群数据同步源码解析
- 开启清理过期租约的线程:eureka客户端续约及服务端过期租约清理源码解析
eurekaclient
eurekaclient就是我们常说的客户端
eureka客户端的启动可参考这篇文章:eurekaclient自动装配及启动流程解析
客户端是与应用程序绑定到一起的,某种意识上来说它是应用实例在注册中心的代言人
当客户端启动时会做这么几个事情:
- 向服务端发起注册请求:eureka应用注册与集群数据同步源码解析
- 开启续租的线程:eureka客户端续约及服务端过期租约清理源码解析
- 先全量获取一次可用服务列表且开启一个定时增量获取的线程:eureka获取服务列表源码解析
当服务下线时会向服务端发送下线通知:eureka服务下线源码解析
服务分区
在图中三个eurekaserver之间是用线隔开的,在eurekaserver上面的三个us-east-xx其实就代表着三个服务端所在的三个分区。
为什么会出现分区这个概念呢?
当一个项目的用户量比较大时,一般会在多个城市的多个机房分别部署多套服务,为了避免网络延时,我们就希望一个条件允许的情况下一个服务优先调用同机房的服务。为了实现这个功能ribbon还专门提供了一种负载均衡算法
自我保护模式
为了避免网络分区故障的解决方案:eureka自我保护模式源码解析
推荐阅读
-
Mybaits 源码解析 (五)----- 面试源码系列:Mapper接口底层原理(为什么Mapper不用写实现类就能访问到数据库?)
-
Eureka获取服务列表源码解析
-
死磕 java同步系列之Phaser源码解析
-
Feign源码解析系列-那些注解们
-
python 系列文章汇总(持续更新...)
-
死磕 java同步系列之CyclicBarrier源码解析——有图有真相
-
Asp.Net Core2.2 源码阅读系列——控制台日志源码解析
-
Java 并发系列(一) ThreadPoolExecutor源码解析及理解
-
Eureka自我保护机制源码解析
-
死磕 java同步系列之ReentrantLock源码解析(二)——条件锁