1. 程式人生 > >Spring Cloud配置中心高可用搭建

Spring Cloud配置中心高可用搭建

本文通過config server連線git倉庫來實現配置中心,除了git還可以使用svn或者系統本地目錄都行。

引入依賴

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

spring-cloud-config-server這個就是配置中心server的依賴。

配置中心做到高可用本身也需要向註冊中心註冊自己的例項,所以需求引用spring-cloud-starter-eureka依賴。

新增啟動類,開啟Config Server功能

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

@EnableConfigServer:即開啟配置伺服器的功能。

@EnableDiscoveryClient:開啟自動註冊客戶端,預設情況下,ServiceRegistry實現將自動註冊正在執行的服務。如註冊中心使用是Eureka,這裡也可以使用的@EnableEurekaClient註解。

新增Config配置

spring: 
  application:
    name: config-center
  profiles:
    active: config-center1
  cloud: 
    config:
      server:
        git:
          uri: ${git.uri}
          searchPaths: ${git.searchPaths}
          username: ${git.username}
          password: ${git.password}
          basedir: ${git.basedir}
          clone-on-start: true
          force-pull: true

eureka:
  instance: 
    prefer-ip-address: true  
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
    lease-expiration-duration-in-seconds: ${lease-expiration-duration-in-seconds}
    lease-renewal-interval-in-seconds: ${lease-renewal-interval-in-seconds}
  client:
    serviceUrl:
      defaultZone: ${register-center.urls}

---
spring:
  profiles: config-center1

server: 
  port: ${config-center1.server.port}

---
spring: 
  profiles: config-center2

server: 
  port: ${config-center2.server.port}

這裡配置了兩臺Config Server,都註冊到了兩臺註冊中心上。

Maven filter配置

#git
git.uri=http://gitlab.example.com/test/config.git
git.username=root
git.password=root
git.searchPaths=config-center
git.basedir=f:/config/config-center/git

Spring Cloud Git配置詳解

spring.cloud.config.server.git.uri:git倉庫地址。

spring.cloud.config.server.git.searchPaths:git倉庫搜尋目錄。

spring.cloud.config.server.git.username:連線git的使用者名稱。

spring.cloud.config.server.git.password:連線git的使用者名稱密碼。

spring.cloud.config.server.git.basedir:配置中心在本地快取配置的目錄。

spring.cloud.config.server.git.clone-on-start:配置為true表示啟動時就克隆配置快取到本地。

spring.cloud.config.server.git.force-pull:配置為true表示如果本地副本是髒的,將使Spring Cloud Config Server強制從遠端儲存庫拉取配置。

啟動配置中心

分別啟動以下配置中心,使用不同的Profile指定埠。

spring-boot:run -Drun.profiles=config-center1 -P dev
spring-boot:run -Drun.profiles=config-center2 -P dev

推薦閱讀

分享Java乾貨,高併發程式設計,熱門技術教程,微服務及分散式技術,架構設計,區塊鏈技術,人工智慧,大資料,Java面試題,以及前沿熱門資訊等。