使用git服务器结合Config搭建分布式配置中心(一)

微服务下的分布式配置中心最终实现理念:一个基于http协议的远程配置实现方式。通过统一的配置管理服务器进行配置管理,客户端通过https协议主动的拉取服务的的配置信息,完成配置获取。

说人话:统一管理配置, 快速切换各个环境的配置

官方文档:https://cloud.spring.io/spring-cloud-static/Finchley.SR1/multi/multi_spring-cloud.html

相关产品:
            百度的disconf 
                地址:https://github.com/knightliao/disconf
            
            阿里的diamand
                地址:https://github.com/takeseem/diamond

            springcloud的configs-server:
                地址:http://cloud.spring.io/spring-cloud-config/

搭建服务端:

1、新建一个springboot项目,加入注册中心的配置

2、启动类增加注解@EnableConfigServer

3、新增部分pom文件内容

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

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--spring config配置-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

4、yml文件(gitlab地址需要加上git后缀,github则可以忽略):

server:
  port: 7009
  servlet:
    context-path: /
  tomcat:
    uri-encoding: UTF-8

#spring
spring:
  profiles:
    active: dev
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: http://gitlab.XXX.git
          username: XXX
          password: XXX
          #超时时间
	  timeout: 5
          #分支
          default-label: master

#actuator
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: ALWAYS

#eureka
eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
    health-check-url-path: /actuator/health
  client:
    registryFetchIntervalSeconds: 5
    service-url:
      defaultZone: XXX

  #rabbitmq
  rabbitmq:
    host: xxx
    port: xxx
    username: admin
    password: admin

rabbitmq是用来做busmq刷新队列的

以上就完成了config服务的配置,git仓库地址请自行创建

测试config服务是否搭建完成,在git仓库里上传一份配置文件

 

由于我的分支是dev,在路径中添加了dev 在浏览器中输入:http://localhost:7009/dev/admin-os-dev.yml,可以正常查看到在git仓库中的配置

由此证明可以正常从config服务中拉取git仓库的配置文件

访问方式有多种,启动的日志中也有标注:

/{name}-{profiles}.properties
/{name}-{profiles}.yml
/{name}-{profiles}.json
/{label}/{name}-{profiles}.yml

name 服务器名称
profile 环境名称,开发、测试、生产
lable 仓库分支、默认master分支

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值