⒈是什么?
Spring Cloud Config分为服务端和客户端两部分。
服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信心等接口。
客户端则是通过指定的配置中心来管理应用资源以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息,配置服务器默认利用Git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过Git客户端工具来方便的管理和访问配置内容。
⒉能干嘛?
①集中管理配置文件
②不同环境不同配置,动态化的配置更新,分环境部署【dev/test/prod/beta/release】
③运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息。
④当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置。
⑤将配置信息以REST接口的形式暴漏
⒊示例
1)配置中心(服务端)
Ⅰ在码云上新建一个仓库(你说是Github的服务器牛逼,还是GFW牛逼)
Ⅱ在本地硬盘克隆此仓库
ⅲ在此仓库中新建application.yml文件(UTF-8)
Ⅳ将此文件提交到码云上
Ⅴ新建配置中心项目,添加相关依赖
12 5org.springframework.boot 3spring-boot-starter-web 46 org.springframework.cloud 7spring-cloud-config-server 8
Ⅵ修改配置文件
1 server: 2 port: 3344 3 spring: 4 application: 5 name: config-server 6 cloud: 7 config: 8 server: 9 git:10 #uri: https://gitee.com/fanqisoft/SpringCloudConfig.git11 #username: fanqisoft@gmail.com12 #password: xxxxxxxxxxx13 uri: git@gitee.com:fanqisoft/SpringCloudConfig.git14 ignore-local-ssh-settings: true15 host-key: someHostKey16 host-key-algorithm: ssh-rsa17 private-key: MIIEpgIBAAKCAQEAx4UbaDzY5xjW6hc9jwN0mX33XpTDVW9WqHp5AKaRbtAC3DqX18 IXFMPgw3K45jxRb93f8tv9vL3rD9CUG1Gv4FM+o7ds7FRES5RTjv2RT/JVNJCoqF19 ol8+ngLqRZCyBtQN7zYByWMRirPGoDUqdPYrj2yq+ObBBNhg5N+hOwKjjpzdj2Ud20 1l7R+wxIqmJo1IYyy16xS8WsjyQuyC0lL456qkd5BDZ0Ag8j2X9H9D5220Ln7s9i21 oezTipXipS7p7Jekf3Ywx6abJwOmB0rX79dV4qiNcGgzATnG1PkXxqt76VhcGa0W22 DDVHEEYGbSQ6hIGSh0I7BQun0aLRZojfE3gqHQIDAQABAoIBAQCZmGrk8BK6tXCd23 fY6yTiKxFzwb38IQP0ojIUWNrq0+9Xt+NsypviLHkXfXXCKKU4zUHeIGVRq5MN9b24 BO56/RrcQHHOoJdUWuOV2qMqJvPUtC0CpGkD+valhfD75MxoXU7s3FK7yjxy3rsG25 EmfA6tHV8/4a5umo5TqSd2YTm5B19AhRqiuUVI1wTB41DjULUGiMYrnYrhzQlVvj26 5MjnKTlYu3V8PoYDfv1GmxPPh6vlpafXEeEYN8VB97e5x3DGHjZ5UrurAmTLTdO827 +AahyoKsIY612TkkQthJlt7FJAwnCGMgY6podzzvzICLFmmTXYiZ/28I4BX/mOSe28 pZVnfRixAoGBAO6Uiwt40/PKs53mCEWngslSCsh9oGAaLTf/XdvMns5VmuyyAyKG29 ti8Ol5wqBMi4GIUzjbgUvSUt+IowIrG3f5tN85wpjQ1UGVcpTnl5Qo9xaS1PFScQ30 xrtWZ9eNj2TsIAMp/svJsyGG3OibxfnuAIpSXNQiJPwRlW3irzpGgVx/AoGBANYW31 dnhshUcEHMJi3aXwR12OTDnaLoanVGLwLnkqLSYUZA7ZegpKq90UAuBdcEfgdpyi32 PhKpeaeIiAaNnFo8m9aoTKr+7I6/uMTlwrVnfrsVTZv3orxjwQV20YIBCVRKD1uX33 VhE0ozPZxwwKSPAFocpyWpGHGreGF1AIYBE9UBtjAoGBAI8bfPgJpyFyMiGBjO6z34 FwlJc/xlFqDusrcHL7abW5qq0L4v3R+FrJw3ZYufzLTVcKfdj6GelwJJO+8wBm+R35 gTKYJItEhT48duLIfTDyIpHGVm9+I1MGhh5zKuCqIhxIYr9jHloBB7kRm0rPvYY436 VAykcNgyDvtAVODP+4m6JvhjAoGBALbtTqErKN47V0+JJpapLnF0KxGrqeGIjIRV37 cYA6V4WYGr7NeIfesecfOC356PyhgPfpcVyEztwlvwTKb3RzIT1TZN8fH4YBr6Ee38 KTbTjefRFhVUjQqnucAvfGi29f+9oE3Ei9f7wA+H35ocF6JvTYUsHNMIO/3gZ38N39 CPjyCMa9AoGBAMhsITNe3QcbsXAbdUR00dDsIFVROzyFJ2m40i4KCRM35bC/BIBs40 q0TY3we+ERB40U8Z2BvU61QuwaunJ2+uGadHo58VSVdggqAo0BSkH58innKKt96J41 69pcVH/4rmLbXdcmNYGm6iu+MlPQk4BUZknHSmVHIFdJ0EPupVaQ8RHT
Ⅶ在主程序启动类上添加@EnableConfigServer注解
1 package cn.coreqi; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication; 5 import org.springframework.cloud.config.server.EnableConfigServer; 6 7 @SpringBootApplication 8 @EnableConfigServer 9 public class ConfigServerApplication {10 11 public static void main(String[] args) {12 SpringApplication.run(ConfigServerApplication.class, args);13 }14 15 }
Ⅷ访问http://localhost:3344/application.yml
2)客户端
Ⅰ在码云仓库上再提交一个yml文件用作客户端的配置文件(UTF-8)
Ⅱ新建客户端项目并添加相应依赖
12 5org.springframework.boot 3spring-boot-starter-web 46 org.springframework.cloud 7spring-cloud-starter-config 8
Ⅲ创建bootstrap.yml文件
★application.yml文件是用户级别的资源配置项。
bootstrap.yml文件是系统级别的资源配置项,优先级更高。
1 spring:2 cloud:3 config:4 name: config_client5 #profile:6 label: master7 uri: http://localhost:3344
Ⅳ创建一个基本的application.yml文件
1 spring:2 application:3 name: config_client
Ⅴ创建主程序启动类,运行项目,可以看到,项目运行在我们在码云上配置的8088端口,说明远程配置成功。