服务配置分为以下几种:本地配置,配置中心两种。
本地配置
- 服务配置最简单的方案就是把配置当成代码看待,每次更新配置需要跟随应用程序代码一起发布。
- 另外就是利用配置文件进行配置参数。
这两种方案都需要重新的走一遍代码和发布的流程。
配置中心
配置中心的思路就是把服务的各种配置和参数放到一个地方进行集中管理。服务启动的时候去配置中心拉取需要的配置内容,并且有更新也能从配置中心拉取到新的配置信息。
配置中心包含以下几个功能:
- 配置注册功能
- 配置反注册功能
- 配置查看功能
- 配置变更订阅功能
配置中心如何实现
-
配置存储结构
配置中心存储配置一般只按照Group来存储。同一类配置放在Group中存储。
配置中心存储 - 配置中心注册: 配置中心提供接口,帮助客户端完成注册功能。
- 配置中心反注册 : 提供反注册接口,完成注销的功能。
- 配置查看 : 接口查看配置信息。
- 配置变更订阅: 客户端保持一个本地的sign值,每隔一段时间通过接口去配置中心拉取最新的sign值,不同的时候拉取最新的配置,更新到本地。
配置中心的应用场景
- 资源服务化
公共的服务资源进行配置到中心上,方便进行管理。 - 业务动态降级
通过修改配置中心的配置内容开关,达到业务降级的作用,比如新增加的业务流程,设置开关,出现问题,将业务开关关闭,即可达到降级的作用 - 分组流量切换
访问的的服务器挂掉之后,通过切换到新的机房进行流量切换,通过配置中心进行调整。
配置中心的开原方案
- Spring Cloud Config :只支持java语言,配置在git中需要手动更新。
- Disconf: 百度的分布式配置管理平台。
- Apollo: 携程开源的配置中心。支持Java,推荐这个,并且对spring boot 开发支持友好