微服务的集中化配置---spring cloud config的配置

本文详细介绍了如何使用Spring Cloud Config搭建配置中心,包括配置文件的命名规则、服务器端配置、客户端配置以及测试运行。通过创建不同环境的配置文件,并在client端根据profile切换,实现微服务的动态配置更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、配置中心

1、配置中心的文件命名规则:

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

/{application}-{profile}.yml

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

/{application}-{profile}.properties

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

2、创建配置文件:

本例中使用git来创建远程配置文件,先创建一个名为“ springCloudConfigTest"的仓库,然后再创建一个名为“cloud-config”的文件夹,最后在这个文件夹下再创建三个文件:springcloud-config-client-dev.properties(内容:userName=张三)、springcloud-config-client-prod.properties(内容:userName=王五)springcloud-config-client-test.properties(内容:userName=李四)

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

二、server端运行

1、pom.xml文件中添加maven依赖:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-config-server</artifactId>
</dependency>

2、application.yml文件配置:

spring:
  application:
    name: cloud-config-server                                     // 服务名称
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/hykai/springCloudConfigTest.git  // git地址
          search-paths: cloud-config                              // 要访问的配置文件目录
          username: userName                                      // 你的git账户名
          password: password                                      // 你的git密码
server:
  port: 9901                                                      // 服务端口

3、启动类添加@EnableConfigServer注解:

@EnableConfigServer
@SpringBootApplication
public class SpringcloudConfigServerApplication {

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

}

4、测试运行:

启动服务,地址栏输入“http://localhost:9901/springcloud-config-client/dev”,成功返回配置信息表示成功运行。

三、client端运行

1、pom.xml文件中添加maven依赖:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-config</artifactId>
</dependency>

2、bootstrap.yml文件配置:

#cloud-config-client配置信息
spring:
  cloud:
    config:
      name: springcloud-config-client      // 对应{application}部分
      profile: dev                         // 对应{profile}部分
      uri: http://localhost:9901/          // 调用配置中心的uri(server端)
      label: master                        // git分支

3、application.yml文件配置:

spring:
  application:
    name: cloud-config-client    // 服务名称
    
server:
  port: 9902                     // 服务端口

说明:

bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。一旦bootStrap.yml 被加载,则内容不会被覆盖。

application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

bootstrap.yml 先于 application.yml 加载。bootstrap 属性有高优先级,默认情况下,它们不会被本地配置覆盖。

4、编写接口测试类:

@RestController
public class ConfigController {

    @Value("${userName}") // 对应配置中心文件中的userName
    private String name;

    @GetMapping("/test")
    public String configTest() {
        String conString = "";
        try {
            // ISO 8859-1转UTF-8,解决中文乱码问题
            conString = new String(this.name.getBytes("ISO8859-1"), "UTF-8");
        }
        catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return conString;
    }

}

5、启动类:

client端无需在启动类添加其他注解。

@SpringBootApplication
public class SpringcloudConfigClientApplication {

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

}

6、测试运行:

注意:因为client端需要调用server端的配置,因此server端需要处于启动状态。

bootstrap.yml文件profile改为“dev”,让其调用配置中心的springcloud-config-client-dev.properties文件,重启服务,地址栏输入“http://localhost:9902/test”,成功返回配置信息表示成功运行:

bootstrap.yml文件profile改为“test”,让其调用配置中心的springcloud-config-client-test.properties文件,重启服务,地址栏输入“http://localhost:9902/test”,成功返回配置信息表示成功运行:

bootstrap.yml文件profile改为“prod”,让其调用配置中心的springcloud-config-client-prod.properties文件,重启服务,地址栏输入“http://localhost:9902/test”,成功返回配置信息表示成功运行:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值