SpringCloud之Config配置

1、config-server 配置中心服务

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.yzm</groupId>
        <artifactId>springcloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>config-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>config-server</name>
    <description>Demo project for Spring Boot</description>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

启动类
@EnableConfigServer:标识这是配置中心服务
在这里插入图片描述

server.port=8097
eureka.client.serviceUrl.defaultZone=http://localhost:8088/eureka/
spring.application.name=config-server

spring.cloud.config.label=master
# git仓库地址
spring.cloud.config.server.git.uri=https://github.com/yezhimincxvxb/springcloud
spring.cloud.config.server.git.search-paths=config
# 公开仓库不需要设置用户密码
spring.cloud.config.server.git.username=
spring.cloud.config.server.git.password=

config配置文件在git仓库的地址目录
在这里插入图片描述

2、config-client 读取配置信息服务

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.yzm</groupId>
        <artifactId>springcloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>config-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>config-client</name>
    <description>Demo project for Spring Boot</description>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>
        
        <!-- 不重启服务,实时更新配置文件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!-- bus 消息总线 -->
      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

在这里插入图片描述
bootstrap.properties
client的配置文件必须是bootstrap.properties而不是application.properties,bootstrap加载优先级更高,才能正确加载到config配置信息

server.port=8098
spring.application.name=config-client

eureka.client.serviceUrl.defaultZone=http://localhost:8088/eureka/
#config
spring.cloud.config.label=master
# 配置文件名称 跟 profile组成完整文件名
spring.cloud.config.name=config-client
spring.cloud.config.profile=test
spring.cloud.config.fail-fast=true
spring.cloud.config.discovery.enabled=true
# 指定配置中心的service-id,便于扩展为高可用配置集群。
spring.cloud.config.discovery.service-id=config-server

在这里插入图片描述
接口,获取配置内容

@RestController
public class HiController {

    @Value("${version}")
    private String version;

    @GetMapping("hi")
    public String hi() {
        return version;
    }
}

在这里插入图片描述

3、读取配置

依次启动eureka、config-server、config-client

访问
http://localhost:8097/config-client-dev.properties
在这里插入图片描述
在这里插入图片描述
http://localhost:8097/config-client/test
在这里插入图片描述
http://localhost:8098/hi
在这里插入图片描述

4、配置刷新

修改config-client-test.properties文件的version=22222
在这里插入图片描述
更改之后,配置中心等待一分钟左右就可以读取到最新值
在这里插入图片描述
config-client则一直是旧的值
在这里插入图片描述

config-client服务引入依赖

        <!-- 不重启服务,实时更新配置文件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!-- bus 消息总线 -->
      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

安装MQ RabbitMQ安装

在这里插入图片描述

添加配置内容

server.port=8098
spring.application.name=config-client

eureka.client.serviceUrl.defaultZone=http://localhost:8088/eureka/
#config
spring.cloud.config.label=master
spring.cloud.config.name=config-client
spring.cloud.config.profile=test
spring.cloud.config.fail-fast=true
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.service-id=config-server

#MQ
spring.rabbitmq.host=192.168.192.128
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=1234
spring.cloud.bus.enabled=true
spring.cloud.bus.trace.enabled=true
#refresh
management.endpoints.web.exposure.include=bus-refresh

加上注解 @RefreshScope

@RefreshScope
@RestController
public class HiController {

    @Value("${version}")
    private String version;

    @GetMapping("hi")
    public String hi() {
        return version;
    }
}

重新启动config-client服务
mq服务器上多了springCloudBus交换机
在这里插入图片描述
在这里插入图片描述
将version修改成33333
在这里插入图片描述
发送post请求:http://localhost:8098/actuator/bus-refresh
在这里插入图片描述
在这里插入图片描述

5、一次刷新,所有实例都更新

再启动服务config-client:18098
启动后修改version=44444
刷新请求 http://localhost:8098/actuator/bus-refresh
对8098刷新,8098和18098都能获取到最新值
在这里插入图片描述

相关链接

首页
上一篇:Zuul网关
下一篇:Zipkin服务追踪

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值