SpringCloud-配置中心-Spring Cloud Config

一、简介

Spring Cloud Config项目是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,client通过接口获取数据、并依据此数据初始化自己的应用。

总的来讲就是一个一个写配置文件太麻烦了,把微服务的相同部分抽离出来,写在一个服务上,让其他作为客户端去调用。

二、使用

一.配置文件(config服务端:3344)

1、依赖

<dependencies>
   	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-config</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
	</dependency>
</dependencies>

2、config配置

spring:
  application:
    name: springcloud-config-center #注册进Eureka服务器的微服务名
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/lixiaogou/sprincloud-config.git #GitHub上面的git仓库名字
          search-paths: #搜索目录
            - springcloud-config
          username: xxxx@qq.com
          password: password
      label: master #读取分支
      name: config  #配置文件名称
      profile: dev  #读取后缀名称   上述三个综合http://localhost:3344/master/config-dev.yml
      #启动成功后访问的路径 http://ip:3344/{label}/{application}-{profile}.yml 能访问的配置文件 就表示成功了

在这里插入图片描述
分支名称+应用名称+后缀名

/{application}/{profile}[/{label}]
 
/{application}-{profile}.yml
 
/{label}/{application}-{profile}.yml
 
/{application}-{profile}.properties

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

3、eureka配置

server:
  port: 3344

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8001/eureka,http://localhost:8002/eureka,http://localhost:8003/eureka
        instance:
    instance-id: cloudconfig3344
    prefer-ip-address: true  #访问路径可以显示IP地址
    #    Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30)
    lease-renewal-interval-in-seconds: 5
    #    Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90),超时将剔除服务
    lease-expiration-duration-in-seconds: 20

4、主启动类

@SpringBootApplication
@EnableConfigServer
@ServletComponentScan("com.atguigu.springcloud.filter")
public class CloudConfigCenter3344Application {
    public static void main(String[] args) {
        SpringApplication.run(CloudConfigCenter3344Application.class, args);
        System.out.println("启动成功");
    }
}

三.配置文件(config客户端:3345)

1、依赖

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

2、config配置:bootstrap.yml(系统优先级)

spring:
  application:
    name: config-client
  cloud:
    config:
      label: master  #分支名称
      name: config  #配置文件名称
      profile: dev  #读取后缀名称   上述三个综合http://localhost:3344/master/config-dev.yml
      uri: http://localhost:3344  #配置中心的地址

3、eureka配置

#服务注册到eureka地址
eureka:
  client:
    service-url:
     defaultZone: http://localhost:8001/eureka,http://localhost:8002/eureka,http://localhost:8003/eureka
        instance:
    instance-id: cloudconfig3345
    prefer-ip-address: true  #访问路径可以显示IP地址
    #    Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30)
    lease-renewal-interval-in-seconds: 5
    #    Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90),超时将剔除服务
    lease-expiration-duration-in-seconds: 20

4、主启动类

@SpringBootApplication
public class CloudConfigClient3355Application {
    public static void main(String[] args) {
        SpringApplication.run(CloudConfigClient3355Application.class, args);
        System.out.println("启动成功");
    }
}

5、业务代码

@RestController
public class ConfigController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/configInfo")
    public String getConfigInfo() {
        return configInfo;
    }
}

三.动态刷新(config客户端)

避免每次修改配置文件,客户端都需要进行重启

1、新增依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

2、新增配置

# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: "*"

3、新增注解

@RestController
public class ConfigController {

    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/configInfo")
    public String getConfigInfo() {
        return configInfo;
    }
}

4、手动刷新(这种需要去手动刷新,一台一台客户端的去刷新)

curl -X POST "http://localhost:3355/actuator/refresh"

5、大范围自动刷新

需要消息总线进行配合。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值