config

服务端搭建

0相关准备

  1. 准备一个github和本地文件夹,使用git来读取的

    配置文件如下,内容随便写:

    image-20210507093002813

  2. 修改windows/system32/drivers/etc/hosts文件,添加 127.0.0.1 config-3344.com

  3. 启动前起码要有配置中心,不然孤立无援

1pom

<dependencies>


        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>com.atguigu.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2 yaml

server:
  port: 3344
spring:
  application:
    name: cloud-config-center
  cloud:
    config:
      server:
        git:
          uri:  https://github.com/xxx/springcloud-config
          search-paths:
            - springcloud-config
      label: master
eureka:
  client:
    service-url:
      defaultZone:  http://localhost:7001/eureka

3.主启动类

@EnableConfigServer

4访问

反正这里有个访问规则,使配置文件暴露出来

config-3344.com:3344/config-test.yml 或者 config-3344.com:3344/master/config-test.yml都可以

客户端搭建

1pom

<dependencies>

        <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>
        <dependency>
            <groupId>com.atguigu.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2bootstrap.yml

还不是太理解,暂时理解成一个比application优先级要高的?

server:
  port: 3355

spring:
  application:
    name: config-client
  cloud:
    config:
      label: master  #分支
      name: config  #配置文件名
      profile: dev  #后缀名  反正合起来就是用config-dev这个文件
      uri: http://localhost:3344
eureka:
  client:
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka

3业务类🎃

由于config-dev中的内容是:

fuck:
	dev

所以这个value去读配置文件的时候就是直接fuck

@RestController
public class AC {
    @Value("${fuck}")
    private String configInfo;
    @GetMapping("/configInfo")
    public String getConfigInfo(){
        return configInfo;
    }
}

4主启动类

不需要加EnableConfigCenter,那个给服务端用的

5访问

localhost:3355/configInfo

存在的问题

github上修改了,服务端3344可以读取到,但是3355刷新不了。难道每次都要重启?

动态刷新

操作步骤都是在客户端3355,只显示新加的部分,对比前面看就好了

1.pom引入actuator

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

2.yml暴露监控端口

#最顶端开始
management:
  endpoints:
    web:
      exposure:
        include: "*"

3.业务类加注解RefreshScope

@RefreshScope

4发送刷新请求

之前的还是不行,必须要post请求刷新

这个可以理解成避免重启?

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

5遗留问题

还是很麻烦,一百条都发?

欲知后事,消息总线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值