服务配置现状
配置文件是我们再熟悉不过的,在微服务系统中,每个微服务不仅仅只有代码,还需要连接其他资源,例如数据库的配置或功能性的开关 MySQL、Redis 、Security 等相关的配置。除了项目运行的基础配置之外,还有一些配置是与我们业务有关系的,比如说七牛存储、短信和邮件相关,或者一些业务上的开关。
但是随着微服务系统的不断迭代,整个微服务系统可能会成为一个网状结构,这个时候就要考虑整个微服务系统的扩展性、伸缩性、耦合性等等。其中一个很重要的环节就是配置管理的问题。
常规配置管理解决方案缺点
硬编码(需要修改代码、繁琐、风险大)properties 或者 yml(集群环境下需要替换和重启)xml(重新打包和重启)
为什么使用 Spring Cloud Config
由于常规配置管理有很大的缺点,所以采用 Spring Cloud Config 集中式的配置中心来管理每个服务的配置信息。
Spring Cloud Config 在微服务分布式系统中,采用 Server 服务端和 Client 客户端的方式来提供可扩展的配置服务。服务端提供配置文件的存储,以接口的形式将配置文件的内容提供出去;客户端通过接口获取数据、并依据此数据初始化自己的应用。
配置中心负责管理所有服务的各种环境配置文件。
配置中心默认采用 Git 的方式存储配置文件