当前位置:网站首页 > 去中心化金融(DeFi) > 正文

Apollo配置中心是基于文件吗(apollo配置中心的缺点)



Apollo配置中心源码分析

1. apollo的核心代码分享
  • SpringApplication启动的关键步骤
  • 在SpringApplication中,会加载所有实现了Init方法的类
  • 通过上述步骤,Apollo自己实现的ApplicationContextInitializer也就 被加载到容器中了。具体的加载流程如下:
2.Apollo启动一览
2.1 ApolloApplicationContextInitializer的作用

定义apollo的容器启动的时候具体的工作事项

容器启动的时候调用init方法

终上,在容器启动的时候,会调用RemoteConfigRepository的构造方法,而实现配置中心的同步主要是调用trySync,schedulePeriodicRefresh,scheduleLongPollingRefresh这个三个方法来实现配置的实时同步

2.2trySync()
2.3 schedulePeriodicRefresh

开启多线程,调用 trySync();

2.4 scheduleLongPollingRefresh

整个apollo配置中心的逻辑就是这样,简单的说就是无线循环的去获取配置信息,当获取到的配置信息与上次获取到的不同那么就刷新容器缓存的配置项并且更新客户端缓存的配置信息。

3. 注解ApolloConfigChangeListener分析
3.1@ApolloConfigChangeListener实现原理

Apollo配置中心有声明一个后置处理器,所以在程序启动的时候,spring容器会自动加载这个PostProcessor。

类图如下

由ApolloProcessor的具体实现可以看到,在postProcessBeforeInitialization(后置处理器生成之前,会调用子类的processField、processMethod方法)。就是说在ApolloProcessor构造后置处理器之前,会调用ApolloAnnotationProcessor的processMethod

ApolloAnnotationProcessor的具体实现

在配置文件发生变动的时候,调用顺序就跟第一大节说的顺序一致。

4 实际使用
4.1配置多个环境列表(一个portal管理多个环境的配置)

在启动portal的时候需要添加参数来指定某个环境对应的注册中心是什么。如下:

在启动Portal的时候,当点击的是dev也签,调用的注册中心是dev_meta;

在apollo中,可以支持多个环境列表的,通过阅读源码可以知道;在portal模块启动的时候,Apollo会将PortalDB库中的ServerConfig表中的数据添加到运行变量中去,其中就有环境列表的信息,这里需要手动加上去,并且用逗号隔开,添加的值也只能是它规定的那几个值。代码如下:

  • 获取表中的数据并将它们设置到环境变量中
4.2 指定运行环境
  • 1.在默认路径 /opt/settings/server.properties中指定代码的运行时环境。在项目启动的时候,会找到classpath路径下面的 apollo-env.properties,由它来指定具体的环境与注册中心的对应关系。这样,就不需要添加-Dapollo.mata这个变量了
到此这篇Apollo配置中心是基于文件吗(apollo配置中心的缺点)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 静脉药物配置中心(静脉药物配置中心的作用和意义)2025-03-12 15:09:04
  • 城厢区公共资源配置中心官网(莆田市城厢区公共资源交易中心)2025-03-12 15:09:04
  • apollo配置中心(apollo配置中心官网)2025-03-12 15:09:04
  • nacos配置中心动态刷新(nacos配置中心动态刷新文件)2025-03-12 15:09:04
  • 静脉配置中心是哪个部门(静脉配置中心工作流程及注意事项)2025-03-12 15:09:04
  • Nacos配置中心只有key没有value(nacos配置中心有啥作用)2025-03-12 15:09:04
  • 本机短信中心的号码是什么(本机短信验证码是什么号码)2025-03-12 15:09:04
  • 静脉药物配置中心在中药领域的重要性(静脉药物配置中心的作用)2025-03-12 15:09:04
  • Apollo配置中心页面长什么样(apollo 配置中心 github)2025-03-12 15:09:04
  • 静脉药物配置中心的发展(简述静脉药物配置中心的工作流程)2025-03-12 15:09:04
  • 全屏图片