分布式配置集中管理框架Smconf

13 篇文章 0 订阅
3 篇文章 0 订阅

微服务必备的几样武器有了,才能独闯武林, 有哪几样呢?

  • 注册中心(eureka, consul, zk, etcd)
  • 配置中心 (Spring Cloud Config, disconf )
  • API网关 (Spring Cloud zuul, kong)
  • 熔断器 (hystrix)
  • 链路追踪 (sleuth)
  • 统一日志管理 (ELK)
  • 自动化部署 (jenkins + Docker)

今天我们主要讲下同样是非常重要的一项,配置中心,当然官方提供的解决方案就是Spring Cloud Config

它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git,SVN等仓库中

在Spring Cloud Config组件中,分两个角色,一是config server,二是config clien

在做技术调研的时候我也研究了下Spring Cloud Config,主要有以下特性

  • 配置集中管理
  • 依赖于git支持版本回退
  • 可以通过git 仓库的WebHook和消息队列来实现自动更新
  • 配置加密解密
  • 可以通过调用接口手动更新配置

还有就是国内的disconf, disconf 可以为各种业务平台提供统一的配置管理服务。

  • 支持配置(配置项+配置文件)的分布式化管理
  • 配置发布统一化
  • 极简的使用方式(注解式编程 或 XML代码无代码侵入模式)
  • 低侵入性或无侵入性、强兼容性
  • 需要Spring编程环境

虽然有很多选择,如果说是Spring Cloud来构建微服务,那么Spring Cloud Config肯定是比较好的一个选择,集成非常方便

但是呢,自动更新那块我感觉不是很好,要依赖WebHook来做,统一更新的话还得将config server前面加一负载均衡,然后对server进行刷配置的通知

还有就是关于配置修改之后的回调事件,目前没找到合适的方法

disconf 也是一个很好的作品,但是呢,也是个人开源的,也不维护了,也许功能够用了

基于以上的一些调查,我还是觉得自己写一个,可以提升一下自己,再而有问题,加新特性,也比较方便

我取了一个很随便的名称Smconf, 意思就是很简单的配置管理

github: https://github.com/yinjihuan/smconf

目前的功能点如下:

  • 提供配置的统一管理
  • 多个环境(生产环境:prod, 线上测试环境:online, 线下测试环境:test, 开发环境:dev)
  • web后台配置管理
  • 配置修改后实时同步到使用的客户端
  • 无缝集成spring和spring boot项目
  • 非spring项目中也可以使用
  • web后台支持不同账号管理不同环境的配置
  • 支持水平扩容,负载,部署多个server,client自动发现
  • 支持用户自定义配置修改回调接口做扩展

有了这个配置中心我们就可以做很多事情了

比如在API网关中我们可以做到

  • 动态限流
  • 动态对IP进行限制
  • 动态对服务进行降级
  • 灰度发布

配置修改实时生效,不在需要一台台去重启服务了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值