博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud Config 配置管理
阅读量:2419 次
发布时间:2019-05-10

本文共 2776 字,大约阅读时间需要 9 分钟。

目录

 

配置中心用于统⼀管理配置, 快速切换各个环境的配置。

springcloud config是一个分布式的配置管理中心,分为config server、config client2部分,支持git仓库、svn仓库、数据库等多种方式存储配置,默认使用git仓库存放配置。

 

config server注册到注册中心上,每个服务都可以作为config client,config client从注册中心上获取config server节点列表,通过ribbon确定要使用的config server节点,从config server节点获取配置,config server节点从git仓库获取配置。

启动顺序:先启动注册中心,再启动config-server,然后启动各个服务。

 

配置文件的存放

配置仓库用于存放配置文件,可以用github、gitlab、gitee、svn等,国内的个人开发者建议使用gitee。

 

新建私人仓库,有2种方式区分不同环境的配置

1、通过文件名区分

配置文件都放在master分支下,通过文件名指定服务、环境,比如user-service的配置文件:user-service-dev.yml、user-service-test.yml、user-service-prod.yml。user-server.yml 这种文件名不带环境的,则为该服务所有环境的公共配置。

 

2、通过分支区分(推荐)

master下放生产环境的配置,新建分支dev、test,分别存放开发环境、测试环境的配置,同一服务的配置文件名相同,比如都是user-service.yml。

 

搭建config-server

1、新建子模块config-server,创建时只需勾选Spring Cloud Config -> Config Server,Spring Cloud Discovery -> Eureka Discovery Client,也可以手动添加依赖

org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-config-server

 

2、引导类上加 @EnableEurekaClient(可缺省)、@EnableConfigServer

 

3、application.yml

server:  port: 7502spring:  application:    name: config-server  cloud:    config:      server:        git:          #git仓库地址          uri: https://gitee.com/xxx/config-mall.git          #git账号、密码          username: xxx          password: xxx          #连接到git仓库的超时时间,单位s,默认5#          timeout: 5          #设置默认分⽀,默认master。config client未指定要使用的分支时,默认使用config server设置的默认分支。#          default-label: master          eureka:  client:    serviceUrl:      defaultZone: http://127.0.0.1:7501/eureka/

启动后访问 127.0.0.1:7502/master/user-service.yml (config-server的ip:port/分支名/文件名),能看到配置内容就说明config server搭建成功。

 

服务作为config client

1、创建时勾选Spring Cloud Config -> Config Client,也可以手动添加依赖

org.springframework.cloud
spring-cloud-starter-config

 

2、bootstrap.yml

spring:  application:    name: order-server  cloud:    config:      discovery:        #启用配置中心        enabled: true        #配置中心的服务名        service-id: config-server      #如果使用分支区分环境,可以用label指定要使用的分支。缺省label时默认使用config server中设置的默认分支#      label: master      #如果使用文件名区分环境,需要使用profile指定文件中的环境#      profile: deveureka:  client:    serviceUrl:      defaultZone: http://127.0.0.1:7501/eureka/

配置文件中只写服务名、config的配置、注册中心的配置即可,其它配置都可以提取到git仓库中。

如果要把应用端口提取到git仓库中,需把本地配置文件名改为bootstrap.yml。

不建议在各个服务中指定用 label 指定要使用的分支,尽量在config-server中用 default-label 统一指定,方便切换。

 

说明

1、config-server本地缓存了服务的配置文件

当一个服务实例启动时,config-server会自动从git仓库拉取该服务的配置文件到本地,config-server再把配置文件返回给服务;如果git仓库没有对应的配置文件,config-server会从本地缓存的配置文件中找,如果有就返回给服务。

就是说:如果git仓库删除了配置文件,只要config-server之前拉取过,也能找到这些配置文件。

 

2、服务配置的更新问题

在git仓库修改配置后,配置不会自动下发到服务中,需要重启服务才会应用更新的配置。

重启应用时,config-server会从git仓库拉取最新的配置文件返回给服务。

可以使用springcloud bus来实现配置的自动刷新。

转载地址:http://bkhlb.baihongyu.com/

你可能感兴趣的文章
Linux模块传参
查看>>
文件系统
查看>>
Linux驱动之总线
查看>>
App 穷途末路?
查看>>
IoT 时代,你要么被颠覆,要么成为颠覆者!
查看>>
漫画:什么是囚徒困境?
查看>>
如何用 160 行代码,实现动态炫酷的可视化图表?
查看>>
山东到底有没有互联网?
查看>>
10 步教你接手同事的代码!
查看>>
买不到口罩怎么办?Python 爬虫帮你时刻盯着自动下单!| 原力计划
查看>>
一图读懂浏览器演变史 | 每日趣闻
查看>>
苹果安全漏洞曝光:可能有 5 亿部 iPhone 易受攻击
查看>>
打造金融科技银行,招行的底气源自……
查看>>
火爆全网的动态曲线图是怎么做的?
查看>>
程序员感叹一年只能存下15万太少了……网友:潸然泪下
查看>>
文科出身敲出 Instagram,被小札“挤”走,建新冠追踪网站,这个程序员有点牛!...
查看>>
面对 Python,Java 中枪了 | 每日趣闻
查看>>
地方普通院校的计算机专业「科班」学生如何突围而出?| 原力计划
查看>>
小白也能看懂的 Java 异常处理
查看>>
C++ 是如何从代码到游戏的?
查看>>