SpringCloud Config(分布式配置中心)

⒈是什么?

  Spring Cloud Config分为服务端和客户端两部分。

  服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信心等接口。

  客户端则是通过指定的配置中心来管理应用资源以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息,配置服务器默认利用Git来存储配置信息,这样就有助于对环境配置进行版本管理,并且可以通过Git客户端工具来方便的管理和访问配置内容。

⒉能干嘛?

  ①集中管理配置文件

  ②不同环境不同配置,动态化的配置更新,分环境部署【dev/test/prod/beta/release】

  ③运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息。

  ④当配置发生变动时,服务不需要重启即可感知到配置的变化并应用新的配置。

  ⑤将配置信息以REST接口的形式暴漏

⒊示例  

  1)配置中心(服务端)

    Ⅰ在码云上新建一个仓库(你说是Github的服务器牛逼,还是GFW牛逼)

    

    Ⅱ在本地硬盘克隆此仓库

  

    ⅲ在此仓库中新建application.yml文件(UTF-8)

    

    Ⅳ将此文件提交到码云上

    

    

    

    

    

    

    Ⅴ新建配置中心项目,添加相关依赖  

1         <dependency>
2             <groupId>org.springframework.boot</groupId>
3             <artifactId>spring-boot-starter-web</artifactId>
4         </dependency>
5         <dependency>
6             <groupId>org.springframework.cloud</groupId>
7             <artifactId>spring-cloud-config-server</artifactId>
8         </dependency>

    Ⅵ修改配置文件

 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.git
11           #username: fanqisoft@gmail.com
12           #password: xxxxxxxxxxx
13           uri: git@gitee.com:fanqisoft/SpringCloudConfig.git
14           ignore-local-ssh-settings: true
15           host-key: someHostKey
16           host-key-algorithm: ssh-rsa
17           private-key: MIIEpgIBAAKCAQEAx4UbaDzY5xjW6hc9jwN0mX33XpTDVW9WqHp5AKaRbtAC3DqX
18             IXFMPgw3K45jxRb93f8tv9vL3rD9CUG1Gv4FM+o7ds7FRES5RTjv2RT/JVNJCoqF
19             ol8+ngLqRZCyBtQN7zYByWMRirPGoDUqdPYrj2yq+ObBBNhg5N+hOwKjjpzdj2Ud
20             1l7R+wxIqmJo1IYyy16xS8WsjyQuyC0lL456qkd5BDZ0Ag8j2X9H9D5220Ln7s9i
21             oezTipXipS7p7Jekf3Ywx6abJwOmB0rX79dV4qiNcGgzATnG1PkXxqt76VhcGa0W
22             DDVHEEYGbSQ6hIGSh0I7BQun0aLRZojfE3gqHQIDAQABAoIBAQCZmGrk8BK6tXCd
23             fY6yTiKxFzwb38IQP0ojIUWNrq0+9Xt+NsypviLHkXfXXCKKU4zUHeIGVRq5MN9b
24             BO56/RrcQHHOoJdUWuOV2qMqJvPUtC0CpGkD+valhfD75MxoXU7s3FK7yjxy3rsG
25             EmfA6tHV8/4a5umo5TqSd2YTm5B19AhRqiuUVI1wTB41DjULUGiMYrnYrhzQlVvj
26             5MjnKTlYu3V8PoYDfv1GmxPPh6vlpafXEeEYN8VB97e5x3DGHjZ5UrurAmTLTdO8
27             +AahyoKsIY612TkkQthJlt7FJAwnCGMgY6podzzvzICLFmmTXYiZ/28I4BX/mOSe
28             pZVnfRixAoGBAO6Uiwt40/PKs53mCEWngslSCsh9oGAaLTf/XdvMns5VmuyyAyKG
29             ti8Ol5wqBMi4GIUzjbgUvSUt+IowIrG3f5tN85wpjQ1UGVcpTnl5Qo9xaS1PFScQ
30             xrtWZ9eNj2TsIAMp/svJsyGG3OibxfnuAIpSXNQiJPwRlW3irzpGgVx/AoGBANYW
31             dnhshUcEHMJi3aXwR12OTDnaLoanVGLwLnkqLSYUZA7ZegpKq90UAuBdcEfgdpyi
32             PhKpeaeIiAaNnFo8m9aoTKr+7I6/uMTlwrVnfrsVTZv3orxjwQV20YIBCVRKD1uX
33             VhE0ozPZxwwKSPAFocpyWpGHGreGF1AIYBE9UBtjAoGBAI8bfPgJpyFyMiGBjO6z
34             FwlJc/xlFqDusrcHL7abW5qq0L4v3R+FrJw3ZYufzLTVcKfdj6GelwJJO+8wBm+R
35             gTKYJItEhT48duLIfTDyIpHGVm9+I1MGhh5zKuCqIhxIYr9jHloBB7kRm0rPvYY4
36             VAykcNgyDvtAVODP+4m6JvhjAoGBALbtTqErKN47V0+JJpapLnF0KxGrqeGIjIRV
37             cYA6V4WYGr7NeIfesecfOC356PyhgPfpcVyEztwlvwTKb3RzIT1TZN8fH4YBr6Ee
38             KTbTjefRFhVUjQqnucAvfGi29f+9oE3Ei9f7wA+H35ocF6JvTYUsHNMIO/3gZ38N
39             CPjyCMa9AoGBAMhsITNe3QcbsXAbdUR00dDsIFVROzyFJ2m40i4KCRM35bC/BIBs
40             q0TY3we+ERB40U8Z2BvU61QuwaunJ2+uGadHo58VSVdggqAo0BSkH58innKKt96J
41             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)

  

  

    Ⅱ新建客户端项目并添加相应依赖

1         <dependency>
2             <groupId>org.springframework.boot</groupId>
3             <artifactId>spring-boot-starter-web</artifactId>
4         </dependency>
5         <dependency>
6             <groupId>org.springframework.cloud</groupId>
7             <artifactId>spring-cloud-starter-config</artifactId>
8         </dependency>

    Ⅲ创建bootstrap.yml文件

  ★application.yml文件是用户级别的资源配置项。

     bootstrap.yml文件是系统级别的资源配置项,优先级更高。 

1 spring:
2   cloud:
3     config:
4       name: config_client
5       #profile:
6       label: master
7       uri: http://localhost:3344

    Ⅳ创建一个基本的application.yml文件

1 spring:
2   application:
3     name: config_client

    Ⅴ创建主程序启动类,运行项目,可以看到,项目运行在我们在码云上配置的8088端口,说明远程配置成功。

posted @ 2019-03-06 22:28  SpringCore  阅读(866)  评论(0编辑  收藏  举报