It's our wits that make us men.

配置中心

Posted on By eatMelon-Masses

apollo能解决什么问题?

随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……

对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……

在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。

Apollo配置中心应运而生!

工作原理

应用、环境、集群、配置项、命名空间

  1. db
  2. configservice 读取 发布

  3. adminservice 新增、修改

  4. eurka 共 configservice adminservice集群做服务注册

  5. metaserver 包装eurka

  6. webprotal web端 发布管理配追

  7. client 获取配置信息

配置发布原理

人 -> portal -> admin service ->(异步) config srvice -> client

如何实现异步通信的?

  1. 当用户通过portal 发布配置,admin service 向 releaseMessage 表中存储 apppid + cluster + namespace,然后通知客户端
  2. onfig service 每秒会扫描releaseMessage表,如果有新消息,会通知所有消息监听器
  3. 客户端更具 apppid + cluster + namespace 找到配置

备用机制

客户端定时5分钟向服务端发起请求拉取最新配置

springboot整合 配置中心 读取配置

需要配置的东西

  1. application.pritaties指定namespace
  2. 通过java system property 指定缓存路径、环境、集群
  3. 启动配置需要家@EnableApolloConfig
  4. 新建apollo-env.properties指定meta server路径、appid、apollo。bootstrap.enable

生产环境部署

灰度发布

分布式配置中心

配置中心配置容器化部署

https://blog.csdn.net/miss1181248983/article/details/108717531