分布式配置中心

为什么需要使用配置中心

1、服务配置的现状

2、常用的配置管理解决方案的缺点

3、为什么要使用 spring cloud config 配置中心

4、spring cloud config 配置中心,它解决了什么问题

编写配置中心入门案例

编写配置中心的服务端

添加依赖


            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.cloud
            spring-cloud-starter-eureka
        
        
            org.springframework.cloud
            spring-cloud-config-server
        

application配置

#配置服务名及端口
spring.application.name=config-server
server.port=9020
#设置服务注册中心地址
eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

#Git 配置
#仓库地址
spring.cloud.config.server.git.uri=https://gitee.com/zhao2020/SpringCloudConfig
#spring.cloud.config.server.git.username=账户名
#spring.cloud.config.server.git.password=或密码

启动类添加@EnableConfigServer注解

@EnableEurekaClient
@EnableConfigServer
@SpringBootApplication
public class ConfigServerlication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServerlication.class, args);
    }
}

在git中上传properties配置文件

测试:通过Spring cloud config server可以直接获取配置文件内容

访问路径:http:// config server地址:端口/目标服务的配置名/环境配置名

配置文件的命名规则与访问

编写配置中心的客户端(就是我们的服务)

依赖

        
        
            org.springframework.cloud
            spring-cloud-starter-config
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        

application配置

#设置服务名称和端口
spring.application.name=config-client
server.port=9021
#设置服务注册中心地址
eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

#默认 false,这里设置 true,表示开启读取配置中心的配置
spring.cloud.config.discovery.enabled=true
#对应 eureka 中的配置中心 serviceId,默认是 configserver
spring.cloud.config.discovery.serviceId=config-server
#指定环境
spring.cloud.config.profile=dev
#git 标签
spring.cloud.config.label=master

#springboot 默认开启了权限拦截 会导致 /refresh 出现 401,拒绝访问
management.security.enabled=false

编写一个方法进行测试

@RestController
@RefreshScope //热部署时刷新作用域中的数据
public class TestController {

    @Value("${e-book}")
    String msg;

    @RequestMapping("showMsg")
    public String showMsg(){
        return msg;
    }
}

测试,获取到了远程git仓库中的properties文件中的内容

配置中心原理

本地服务启动后,默认会从本地git仓库(Spring config server)中获取配置文件,本地git仓库会从远程git仓库获取配置文件,并缓存到本地。当本地服务进行重启(或利用热部署刷新项目)后,将会重新从远程git仓库获取配置文件。

利用cURL发送POST请求进行热部署加载远程Git仓库的配置文件

注意,X和POST一定要是大写

curl 127.0.0.1:9021/refresh -X POST

你可能感兴趣的:(分布式配置中心)