查看原文
其他

SpringCloud配置中心高可用搭建

2017-10-10 javastack Java技术栈


本文通过config server连接git仓库来实现配置中心,除了git还可以使用svn或者系统本地目录都行。

引入依赖

  1. <dependencies>

  2.    <dependency>

  3.        <groupId>org.springframework.cloud</groupId>

  4.        <artifactId>spring-cloud-config-server</artifactId>

  5.    </dependency>

  6.    <dependency>

  7.        <groupId>org.springframework.cloud</groupId>

  8.        <artifactId>spring-cloud-starter-eureka</artifactId>

  9.    </dependency>

  10. </dependencies>

spring-cloud-config-server这个就是配置中心server的依赖。

配置中心做到高可用本身也需要向注册中心注册自己的实例,所以需求引用spring-cloud-starter-eureka依赖。

添加启动类,开启Config Server功能

  1. @EnableDiscoveryClient

  2. @EnableConfigServer

  3. @SpringBootApplication

  4. public class ConfigApplication {

  5.    public static void main(String[] args) {

  6.        SpringApplication.run(ConfigApplication.class, args);

  7.    }

  8. }

@EnableConfigServer:即开启配置服务器的功能。

@EnableDiscoveryClient:开启自动注册客户端,默认情况下,ServiceRegistry实现将自动注册正在运行的服务。如注册中心使用是Eureka,这里也可以使用的@EnableEurekaClient注解。

添加Config配置

  1. spring:

  2.  application:

  3.    name: config-center

  4.  profiles:

  5.    active: config-center1

  6.  cloud:

  7.    config:

  8.      server:

  9.        git:

  10.          uri: ${git.uri}

  11.          searchPaths: ${git.searchPaths}

  12.          username: ${git.username}

  13.          password: ${git.password}

  14.          basedir: ${git.basedir}

  15.          clone-on-start: true

  16.          force-pull: true

  17. eureka:

  18.  instance:

  19.    prefer-ip-address: true  

  20.    instance-id: ${spring.cloud.client.ipAddress}:${server.port}

  21.    lease-expiration-duration-in-seconds: ${lease-expiration-duration-in-seconds}

  22.    lease-renewal-interval-in-seconds: ${lease-renewal-interval-in-seconds}

  23.  client:

  24.    serviceUrl:

  25.      defaultZone: ${register-center.urls}

  26. ---

  27. spring:

  28.  profiles: config-center1

  29. server:

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

  31. ---

  32. spring:

  33.  profiles: config-center2

  34. server:

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

这里配置了两台Config Server,都注册到了两台注册中心上。

Maven filter配置

  1. #git

  2. git.uri=http://gitlab.example.com/test/config.git

  3. git.username=root

  4. git.password=root

  5. git.searchPaths=config-center

  6. 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指定端口。

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

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

推荐阅读



什么是Spring Boot?

Spring Boot开启的2种方式

Spring Boot Starters启动器

Spring Boot定制启动图案

Spring Boot核心配置

Spring Boot功能实战

Spring Boot自动配置原理、实战

Spring Boot Runner启动器

Spring Boot - Profile不同环境配置


看完有没有收获?

分享到朋友圈给更多的人吧。




  Java技术栈  
微信公众号:「Javastack

分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。


 ▼长按二维码关注我们↓↓↓


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存