05_吃透eureka源码之核心启动类EurekaBootStrap contextInitialized方法分析(2)

本文详细分析了Eureka Server的初始化过程,包括配置管理、单例模式应用及配置加载等核心内容。通过接口方式提供了73个配置参数,并介绍了如何加载eureka-server.properties配置文件。

1,上一个章节回顾

上篇文章我们介绍了第一步eureka环境初始化的源码分析,我们知道了通过dubbo check + volatile的单列模式来进行了配置管理和初始化的设计,然后就结束了源码分析,我们也学到了可以把eureka中比较好的单列模式尽量运用到自己的实际项目中。好了接下来我继续学习第二步,初始化eureka serverContext的方法initEurekaServerContext()

2,initEurekaServerContext()方法的分析

protected void initEurekaServerContext() throws Exception {
//通过接口的方式对外暴露配置,通过方法名称就可以很清楚的知道什么配置
      EurekaServerConfig eurekaServerConfig = new DefaultEurekaServerConfig();

EurekaServerConfig 是一个接口对象:里面定义了73个接口,相当于对外提供了73个配置数据。我大概抽了几个方法出来

getRenewalPercentThreshold
getRenewalThresholdUpdateIntervalMs
getPeerEurekaNodesUpdateIntervalMs
shouldEnableReplicatedRequestCompression
getNumberOfReplicationRetries
getPeerEurekaStatusRefreshTimeIntervalMs

通过这个方法名称申明配置数据,学习运用的点:
这个可以在基本上不改变配置的情况下使用这种方式,简单明了,而且意思比较清晰。如果大量的配置变量经常要改动就不要用这种方式来设计了,还是那个常量或者properties的key-value更好。

继续跟进DefaultEurekaServerConfig里面
调用init初始化方法
在这里插入图片描述
画了红线的重点方法

ConfigurationManager.loadCascadedPropertiesFromResources(eurekaPropsFile);

通过方法名称就知道从外部的配置文件中加载一个properties的数据到AbstractConfiguration配置中去。
在这里插入图片描述
我们打断点看看从哪里加载的配置数据到配置管理系统中的。
在这里插入图片描述
从断点可以看到是从eureka-server工程中的eureka-server.properties加载的
在这里插入图片描述
继续跟踪看每个方法的配置数据从哪里来的如图:
在这里插入图片描述
我们看到所有的都是从configInstance中获取的,继续跟踪源码下去
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

又是dubbo check + volatile的方式创建了 config的初始化的装配,并且返回了DynamicPropertyFactory 对象,给每个方法进行调用。

总结:
1,通过接口的方式提供给Server配置参数
2,加载eureka-server.properties到配置管理系统中。
3,通过dubbo check volatile的方式创建了DynamicPropertyFactory属性工厂类
4,所有的方式配置数据都是通过DynamicPropertyFactory来获取的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值