Eureka
客户端
@EnableDiscoveryClient
它只做了一些事,就是把一个配置类加载进来,这个配置类 有一个 主动注册 ,注册管理的属性配置,先记着,以后用的到
1 |
|
查看spring-cloud-netflix-eureka-client包下 meta-inf/ spring.factory文件
1 | \ = |
DiscoveryClientOptionalArgsConfiguration
注册一个客户端的 可选参数,主要用于 去setTransportClientFactories(new RestTemplateTransportClientFactories());
就是设置一个 用于 创建客户端通信对象的工厂
1 | //第一个bean是 用于使用RestTemplate去传输集群间通信请求的 |
RefreshAutoConfiguration
1 | //一个刷新作用域对象 |
EurekaDiscoveryClientConfiguration
1 |
|
AutoServiceRegistrationAutoConfiguration
1 |
|
EurekaClientAutoConfiguration
1 |
|
EurekaClient构建
1 |
|
准备传输层的东西
1 |
|
拉取注册中心
1 | private final com.netflix.servo.monitor.Timer FETCH_REGISTRY_TIMER = Monitors |
全量数据拉取
1 |
|
获取增量数据
1 |
|
开启任务调度
1 |
|
cacheRefreshTask
1 |
|
heartbeatTask
1 |
|
InstanceInfoReplicator
1 |
|
关闭
1 | public synchronized void shutdown() { |
配置类
EurekaClientConfig
1 | EurekaClientConfig它不集成到cloud的话,使用的是 eureka core 包下的 DefalutEurekaClientConfig |
EurekaInstanceConfig
1 |
|
服务端
配置类
EurekaServerConfig
没有集成cloud默认实现DefaultEurekaServerConfig
1 |
|
EurekaDashboardProperties
1 | "eureka.dashboard") ( |
InstanceRegistryProperties
1 |
|
@EnableEurekaServer
1 |
|
1 | \ = |
EurekaServerAutoConfiguration
1 | false) (proxyBeanMethods = |
PeerAwareInstanceRegistry构建
1 |
|
PeerEurekaNodes构建
1 |
|
对等节点构建
1 |
|
EurekaServerContext构建
1 |
|
EurekaServerBootstrap构建
1 |
|
@Import(EurekaServerInitializerConfiguration.class)
这个是一个初始化 eureka服务配置的类
1 |
|
bootstrap辅助启动
1 | public void contextInitialized(ServletContext context) { |
ServletContainer
1 | public class ServletContainer extends HttpServlet implements Filter { |
服务端的调度任务
增量数据保留的调度器
1 |
|
服务剔除任务调度器
1 |
|
更新对等节点的任务
1 |
|
续约阈值更新的任务
1 | private void scheduleRenewalThresholdUpdateTask() { |
缓存更新任务
1 |
|
服务端怎么收到请求的
ApplicationsResource
1 | "/{version}/apps") ( |
1 |
|
ResponseCache
1 |
|
ResponseCacheImpl
1 |
|
加载指定key的缓存value
1 | 所以缓存之缓存了Apps和detalApps |
- 本文作者: 忘忧症
- 本文链接: https://NepenthesZGW.github.io/2020/08/03/framework/SpringCloud/eureka/Eureka/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!