Spring Cloud 如何选择分布式配置中心
##微服务必备的几样武器有了,才能独闯武林, 有哪几样呢?
- 注册中心(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进行限制
- 动态对服务进行降级
- 灰度发布
配置修改实时生效,不在需要一台台去重启服务了
欢迎加入我的知识星球,一起交流技术,免费学习猿天地的课程(http://cxytiandi.com/course)
PS:目前星球中正在星主的带领下组队学习Sentinel,等你哦!
Spring Cloud 如何选择分布式配置中心相关推荐
- Spring Cloud Alibaba Nacos 分布式配置中心
文章目录 1 摘要 2 核心 Maven 依赖 3 核心代码 3.1 bootstrap 配置文件 3.2 application 配置文件 3.3 配置测试类 - Controller 层 3.4 ...
- Spring Cloud入门-Config分布式配置中心(Hoxton版本)
文章目录 Spring Cloud入门系列汇总 摘要 Spring Cloud Config 简介 在Git仓库中准备配置信息 配置仓库目录结构 master分支下的配置信息 dev分支下的配置信息 ...
- Spring Cloud Alibaba —— Nacos Config 配置中心
导航 引言 一.什么是配置中心 二.常见的配置中心组件 三.Nacos Config 入门 四.Nacos Config 动态配置 4.1 硬编码方式(默认支持动态生效) 4.2 属性注入 五.配置共 ...
- Spring Boot + Spring Cloud 实现权限管理系统 配置中心(Config、Bus)
技术背景 如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每个项目都散落着各种配置文件,且随着服务的增加而不断增多.此时,往往某一个基础服务信息变更,都会导致一系列服务的更新和重启, ...
- Spring Cloud(15)——配置中心
Spring Cloud Config Spring Cloud Config提供分布式配置功能,它包含Server和Client两部分.Server负责提供统一的配置信息,Client负责从Serv ...
- Spring Cloud Alibaba Nacos 分布式配置
Spring Cloud Alibaba 分布式配置 1. 简介 Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spr ...
- Spring Cloud Alibaba——Nacos服务配置中心
Nacos服务配置中心 建Module 改Pom 改yml Nacos端操作 写启动类 写controller层 测试 Tips 简单记录下使用Nacos作为服务配置中心,此篇建立在上篇的Nacos服 ...
- Spring Cloud 采用Consul做配置中心
-----------------pom.xml依赖,主要是spring-cloud-starter-consul-config <dependency><groupId>or ...
- Spring Cloud 系列之 Nacos 配置中心
目录 一.Nacos简介 二.Nacos安装及配置 1.环境准备 2.安装包下载 (1)源码方式 (2)发行包方式 3.启动Nacos服务 4.Nacos数据库配置 (1)MySQL数据源 (2)初始 ...
最新文章
- 牛!这位斯坦福PhD新生的论文被引数:接近4万
- 高级软件工程第九次作业:东理三剑客团队作业-随笔2
- 程序员面试金典 - 面试题 02.06. 回文链表(快慢指针+链表反转)
- nvprof 使用记录; 以及使用 nvprof 查看tensorflow-gpu 核函数运行记录
- 232 Crossword Answers
- 九大背包问题专题--二维费用的背包问题
- java day20【字节流、字符流】
- LitJson不支持float
- 11-11 11:11
- Python学习-第3课(函数作用域、列表集合字典元祖)
- 报错 AttributeError: ‘scipy.spatial.transform._rotation.Rotation‘ object has no attribute ‘as_dcm‘
- IPv6 NDP——邻居发现协议
- 苹果手机免越狱群控无需硬件即插即用高清投屏控制操作
- eclipse 项目中搜索资源(类方法,文件名,文件中的字符串)
- web直传cos(腾讯云)图片视频
- 国家统计局固定资产投资统计
- 基于矢量切片的电子地图配图(三)配图准备
- 8个企业微信的功能,你知道几个,喜欢用哪个?
- 联发科(MTK)MT6771 安卓核心板 安卓主板方案知识分享
- CPU性能由主频决定吗?
热门文章
- 拨号上网与宽带上网有什么区别?
- Java:使用Robot类模拟键盘, 以Alt码方式输出汉字
- android spinner 按钮,android sqlite和spinner的用法示例
- 三星S5PV210Android系统下LED灯驱动程序
- 19 款仿 Bootstrap 后台管理主题免费下载
- netstat命令使用详解
- [附源码]java毕业设计家居装修网站
- 定位:相对定位和绝对定位
- Html Select 使用selected属性设置默认选择项
- Elasticsearch7 分词器(内置分词器和自定义分词器)