博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Consul Config 使用Git做版本控制的实现
阅读量:6276 次
发布时间:2019-06-22

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

Spring Cloud Config 原理

image

我们通过git 把配置文件推送到远程仓库做版本控制,当版本发生变化的时候,远程仓库通过webhook机制推送消息给 Config Server,Config Server 将修改通知发送到消息总线,然后所有的Config Client 进行配置刷新。

非常巧妙的借助了Git来做配置文件修改的版本控制。

Consul Config 的FILES 机制

public enum Format {    /**     * Indicates that the configuration specified in consul is of type native key values.     */    KEY_VALUE,    /**     * Indicates that the configuration specified in consul is of property style i.e.,     * value of the consul key would be a list of key=value pairs separated by new lines.     */    PROPERTIES,    /**     * Indicates that the configuration specified in consul is of YAML style i.e., value     * of the consul key would be YAML format     */    YAML,    /**     * Indicates that the configuration specified in consul uses keys as files.     * This is useful for tools like git2consul.     */    FILES,}

Consul 提供以上的策略,key/value、yaml、properties,可以很简单的通过Consule Config 的管理台进行配置,我们主要来看FILES,就是我们也是Cloud Config 一样,通过Git 来做版本控制,只是用Consul 做配置的分发和修改的通知

原生的Consul不支持Git来做,需要借助Consul 社区提供的另外一个工程
非常简单就下载就安装好了。
主要来讲一下初始化脚本的 git2consul.json

{    "version":"1.0",    "local_store": "本地仓库备份地址",    "logger":{        "name":"git2consul",        "streams":[            {                "level":"trace",                "type":"rotating-file",                "path":"生成日志路径/git2consul.log"            }        ]    },    "repos":[        {            "name":"pig-config",            "url":"远程仓库地址",            "include_branch_name" : true,  //分支信息是否包含到请求中,建议使用            "branches":[                "dev"            ],            "hooks":[                  {                  "type" : "polling", //更新策略定时刷新的                  "interval" : "1"   //1分钟                }            ]        }    ]}

启动时候指定上边的脚本

./git2consul --config-file git2consul.json

bootstarp.yml配置

spring:  application:    name: pig-auth  cloud:    consul:      host: localhost      port: 8500      config:        enabled: true        format: FILES        watch:          enabled: true        prefix: ${spring.application}/${spring.profiles.active}  profiles:    active: dev

OK 已经可以使用了 git2consul 来同步你的配置文件啦。

配置细节

image

如上图,我配置文件的例子。

FILES机制和Spring Cloud Config加载类似,application.yml 会被所有微服务模块加载公用,对应的application-name.yml 会被对应的微服务加载。

总结

  1. 经过整合Consul Config 已经完成了和Spring Cloud Config 相同的功能,Spring Cloud 微服务使用配置文件过程中并没有太大区别。
  2. 实时刷新机制和前文[《Consul微服务的配置中心体验篇》]提到的KEY-VALUE模式没有什么区别,git2consul 不仅支持webhook 的push,而且可以轮询pull,类似于 Apollo 配置中心的部分功能
    1. [关于pig:基于Spring Cloud、oAuth2.0开发基于Vue前后分离的开发平台,支持账号、短信、SSO等多种登录,提供配套视频开发教程]

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

你可能感兴趣的文章
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
送给“正在纠结”、“准备纠结”的前端开发们
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
谈DELL收购EMC
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
學習 React.js:用 Node 和 React.js 創建一個實時的 Twitter 流
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>
SUSE11修改主机名方法
查看>>
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>