从Spring 官网来看,配置中心主要分为两个部分,配置服务端与配置数据客户端插件。主要的职责如下:
服务端:
HTTP,用于外部配置的基于资源的API(名称-值对,或等效的YAML内容)
加/解密属性值(同步或异步方式)
能使用@EnableConfigServer快速嵌入
配置客户端:
绑定远程配置服务器中的远程属性并初始化Spring 环境对象
加/解密属性值(同步或异步)
以上职责确实来自字面信息,应用组件的可变信息进行属性化配置,并且由标准组件获取/加载到进程上下文环境中。
从组件角度来看,怎么知道配置信息在哪呢?
spring config 组件默认使用了8888端口。配置服务地址可以在组件引导配置文件中进行修改。所以,引入配置中心后,并没有完全除去单一组件的配置项,只是把配置项降低到服务路径配置级别。
从java运行机制来看,变量信息可以来自多方面:运行环境/启动命令行/配置文件/配置服务中心等。所以,在进入微服务环境后,配置中心将提供统一设置。甚至在业务功能增量推广过程中,可以实现灰度发布等可能。