欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

快速搭建 Spring Cloud Config

程序员文章站 2022-03-16 18:25:41
...

Spring Cloud Config 分布式配置中心

  • 是Spring Cloud团队创建的一个全新的项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。
  • 其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是为服务架构中的各个微服务应用或基础设施,他们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。
  • Spring Cloud Config实现的配置中心默认采用Git来存储配置信息。所以使用Spring Cloud Config构建的配置服务器,支持对微服务应用配置信息的版本管理,并且可以通过Git客户端工具来方便的管理和访问配置内容。

    搭建 Spring Cloud Config Server

    1、新建config-server 的model

2、注意这里不是application.yml而新建bootstrap.yml(bootstrap.yml可以获取一些外部配置信息,这些信息优先级高于application.yml,就此实现了外部化配置)

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
#          uri: https://github.com/forezp/SpringcloudConfig/
          uri: https://github.com/25312/ConfigServer/
#          配置Git仓库位置
          searchPaths: respo
#          spring_cloud_in_action/config-repo 配置仓库路径下的相对搜索位置,可以配置多个
          username: 
#          访问Git仓库的用户名
          password: 
#          访问Git仓库的用户名密码
      label: master




server:
  port: 9200

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:1122/eureka/

3、在应用程序启动类添加 @EnableConfigServer 注解

@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServerApplication.class, args);
    }
}

4、启动测试(先启动高可用配置中心,peer1和peer2):
快速搭建 Spring Cloud Config
输入:http://localhost:9200/cc/dev/master(意为访问 master 节点下 cc-dev.properties)
快速搭建 Spring Cloud Config
快速搭建 Spring Cloud Config
如此便测试成功!

仓库中的配置文件会被转换成web接口,访问可以参照以下的规则:

/{application}/{profile}[/{label}]:

  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties

搭建Spring Cloud Client

1、新建config-client 的model

2、配置文件一样是bootstrap.yml

eureka:
  client:
    serviceUrl:
        defaultZone: http://peer1:1122/eureka/
spring:
  application:
    name: config-client
  cloud:
    config:
      uri:  http://localhost:9200/
      label: master
      profile: dev
server:
  port: 9300

3、在应用程序启动类加 @EnableDiscoveryClient 即可

@EnableDiscoveryClient
@SpringBootApplication
public class ConfigClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigClientApplication.class, args);
    }
}

4、新建一个 TestController 类作为测试获取配置中心 github上的属性值

@RestController
public class TestController {

  @Value("${from}")
    String from;

    @RequestMapping("/from")
    public String from(){

        return "hello  :  "+from;
    }

}

5、启动(cpnfig-client应用程序):
快速搭建 Spring Cloud Config

6、如果改变github中配置文件的 from = cc-test.1.2 改成 from=cc-test.2.3,再次访问 http://localhost:9300/from 发现 from 还是 cc-test.1.2
那么就要在 config-client 的pom.xml文件中新增 spring-boot-starter-actuator监控模块来实现配置信息的动态刷新(其中包含了 /refresh 端点的实现,用于客户端应用配置信息的重新获取与刷新)

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
  1. 重新启动config-client,访问 http://localhost:9300/from 可以看到修改后的值
  2. 修改 from 的值:from = cc-test.3.4
  3. 再次访问http://localhost:9300/from还是没有变 还是 cc-test.2.3
  4. POST(Postman)请求 http://localhost:9300/refresh
  5. 再次 http://localhost:9300/from 可以看到更新后的值了

++++++++++++++++++++++++++++++OVER+++++++++++++++++++++++++++++++++++++

相关标签: springcloud config