apollo能解决什么问题?
随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……
对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制……
在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。
Apollo配置中心应运而生!
工作原理
应用、环境、集群、配置项、命名空间
- db
-
configservice 读取 发布
-
adminservice 新增、修改
-
eurka 共 configservice adminservice集群做服务注册
-
metaserver 包装eurka
-
webprotal web端 发布管理配追
- client 获取配置信息
配置发布原理
人 -> portal -> admin service ->(异步) config srvice -> client
如何实现异步通信的?
- 当用户通过portal 发布配置,admin service 向 releaseMessage 表中存储 apppid + cluster + namespace,然后通知客户端
- onfig service 每秒会扫描releaseMessage表,如果有新消息,会通知所有消息监听器
- 客户端更具 apppid + cluster + namespace 找到配置
备用机制
客户端定时5分钟向服务端发起请求拉取最新配置
springboot整合 配置中心 读取配置
需要配置的东西
- application.pritaties指定namespace
- 通过java system property 指定缓存路径、环境、集群
- 启动配置需要家@EnableApolloConfig
- 新建apollo-env.properties指定meta server路径、appid、apollo。bootstrap.enable
生产环境部署
灰度发布
分布式配置中心
配置中心配置容器化部署
https://blog.csdn.net/miss1181248983/article/details/108717531