本文通过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

推荐阅读

干货:2TB架构师四阶段视频教程

面经:史上最全Java多线程面试题及答案

面经:史上最全阿里高级Java面试题

面经:史上最全Spring面试题

教程:最全Spring Boot全套视频教程

书籍:进阶Java架构师必看的15本书

工具:推荐一款在线创作流程图、思维导图软件

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

最新文章

  1. MyBatis源码分析(3)—— Cache接口以及实现
  2. C#创建目录,文件名过滤特殊字符串,非法字符
  3. idea 使用
  4. dom4j如何解析xml
  5. ext 3.2 tree 在IE10中点击事件失效的bug
  6. C# 计算文件的 Hash 值
  7. linux之Apache
  8. FatFsVersion0.01源码分析
  9. Windows下Oracle不显示中文[已解决]
  10. B-Tree 和 B+Tree
  11. Java 关于密码处理的工具类[MD5编码][AES加密/解密]
  12. Lodop强制分页LODOP.NewPage()和LODOP.NewPageA()
  13. docker启动报错iptables failed: -重建docker0网络恢复
  14. [C#]反射遍历对象属性
  15. 高德地图API(流程法)整理分析
  16. H5基本标签
  17. grafana使用Prometheus数据源监控mongo数据库
  18. java 第五章 方法定义及调用
  19. 用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
  20. Java语言实现简单FTP软件------>远程文件管理模块的实现(十)

热门文章

  1. Ajax 中Post 与 Get的 实例
  2. luoguP2184 贪婪大陆 题解(树状数组)
  3. 四、spring的JDBC模板和事务管理
  4. 获取年月日格式为yyyy-m-d简单写法
  5. 关于dom获取元素的几种方式
  6. 2019-1-28-WPF-高性能笔
  7. css3 实现可以中英切换的导航条
  8. 密码加密与微服务鉴权JWT
  9. 【leetcode】552. Student Attendance Record II
  10. 信号量的使用 ManualResetEvent