SpringCloud之集成配置中心及自動刷新

環境:SpingBoot2.0 ,SpringCloud Finchley.RELEASE

登錄github創建一個倉庫 myspringcloudconfig 然後再創建一個config-client1文件夾

編寫application.yml

name: zhangsan

application-dev.yml

name: zhangsan-dev

application-test.yml

name: zhangsan-test

3個文件並上傳到config-client1目錄下

搭建rabbitmq服務器

省略...

搭建Config Server項目 取名 zns-config

<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>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

啓動類

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.config.server.EnableConfigServer; 
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

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

bootstrap.yml

server:
  port: 10005
  servlet:
    context-path: /
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
spring:
    application:
        name: zns-config
    cloud:
        config:
          server:
            git:
              uri: https://github.com/zns/myspringcloudconfig.git  #Git倉庫的地址
              search-paths: config-client1  #倉庫中配置文件所在文件夾路徑 默認 /
              username: [email protected]
              password: 123456
              label: master  #倉庫的分支
        bus:
          trace:
            enabled: true
    rabbitmq: #本地環境可以不需要配置mq,但是需要啓動mq,Springboot會自動連接本地的mq服務器
        host: localhost
        port: 5672
        username: guest
        password: guest

management: #打開bus/refresh刷新開關
  endpoints:
    web:
      exposure:
        include: "*"

在這裏給大家風向一波免費Java資源包括分佈式,微服務,併發,面試,Java架構師成長路線等等資源
加QQ:2995457287 或 vx:gupao-cola 免費獲取。

搭建Config Client項目 取名 zns-config-client

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

啓動類

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

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

bootstrap.yml

server:
  port: 10006
  servlet:
    context-path: /
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
spring:
    application:
        name: zns-config-client
    profiles:
        active: dev #使用哪個環境配置文件
    cloud:
        config:
          fail-fast: true
          discovery:
            enabled: true
            service-id: zns-config  #配置中心項目服務的應用名稱
    rabbitmq: #本地環境可以不需要配置mq,但是需要啓動mq,Springboot會自動連接本地的mq服務器
        host: localhost
        port: 5672
        username: guest
        password: guest

@RefreshScope加在需要讀取配置的類上<

@RestController
@RefreshScope public class MyController {

    @Value("${name}")
    String name;

    @RequestMapping("/getName") public String getName(){ return name;
    }
}

測試

1.啓動rabbitmq

2.啓動註冊中心eureka

3.啓動配置中心項目

4.啓動配置客戶端項目

訪問 getName 控制器url,可以看到已經讀取到了git上dev環境的name屬性值

git上修改name的值保存提交,再調用配置中心服務刷新配置url

http://localhost:10005/actuator/bus-refresh

客戶端再次訪問getName,可以看到name的最新值已經同步更新顯示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章