六、历史版本
6.1 版本 v1.0.0 特性[2015-11-13]
6.2 版本 v1.1.0 特性[2016-08-17]
- 1、简单易用: 上手非常简单, 只需要引入maven依赖和一行配置即可;
- 2、在线管理: 提供配置中心, 支持在线管理配置信息;
- 3、实时推送: 配置信息更新后, Zookeeper实时推送配置信息, 项目中配置数据会实时更新并生效, 不需要重启线上机器;
- 4、高性能: 系统会对Zookeeper推送的配置信息, 在Encache中做本地缓存, 在接受推送更新或者缓存失效时会及时更新缓存数据, 因此业务中对配置数据的查询并不存在性能问题;
- 5、配置备份: 配置数据首先会保存在Zookeeper中, 同时, 在MySQL中会对配置信息做备份, 保证配置数据的安全性;
- 6、HA: 配置中心基于Zookeeper集群, 只要集群节点保证存活数量大于N/2+1, 就可保证服务稳定, 避免单点风险;
- 7、分布式: 可方便的接入线上分布式部署的各个业务线, 统一管理配置信息;
- 8、配置共享: 平台中的配置信息针对各个业务线是平等的, 各个业务线可以共享配置中心的配置信息, 当然也可以配置业务内专属配置信息;
6.3 版本 v1.2.0 新特性[2016-10-08]
- 1、配置分组: 支持对配置进行分组管理, 每条配置将会生成全局唯一标示GroupKey,在client端使用时,需要通过该值匹配对应的配置信息;
6.4 版本 v1.3.0 新特性[2016-10-08]
- 1、支持在线维护配置分组;
- 2、项目groupId从com.xxl迁移至com.xuxueli,为推送maven中央仓库做准备;
- 3、v1.3.0版本开始,推送公共依赖至中央仓库;
6.5 版本 v1.3.1-beta 新特性[2017-08-10]
- 1、本地配置优先加载逻辑调整;
- 2、zookeeper地址方式从磁盘迁移至项目内;
6.6 版本 v1.3.1-beta2 新特性[2017-08-19]
6.7 版本 v1.4.0 新特性[2018-03-02]
- 1、支持通过 "@XxlConf" 注解获取配置;
- 2、动态推送更新:目前支持 "XML、 @XxlConf、API" 三种配置方式,均支持配置动态刷新;
- 3、配置变更监听功能:可开发Listener逻辑,监听配置变更事件,可据此动态刷新JDBC连接池等高级功能;
- 4、用户管理:支持在线添加和维护用户,包括普通用户和管理员两种类型用户;
- 5、配置权限控制;以项目为维度进行配置权限控制,管理员拥有全部项目权限,普通用户只有分配才拥有项目下配置的查看和管理权限;
- 6、配置变更版本记录:记录配置变更历史,方便历史配置版本回溯,默认记录10个历史版本;
- 7、客户端断线重连强化,除了依赖ZK之外,新增守护线程,周期性刷新Local Cache中配置数据并watch,进一步提高配置时效性;
- 8、ZK过期重连时,主动刷新LocalCache中配置数据,提高异常情况下配置时效性;
- 9、ZK重入锁做二次校验,防止并发冲突;
- 10、主动缓存null或不存在类型配置,避免配置请求穿透到ZK引发雪崩问题;
- 11、Local Cache缓存长度固定为1000,采用LRU策略移除。
- 12、表结构优化;
- 13、重构核心代码,规范代码结构;
- 14、环境配置文件,支持自定义存放位置,项目resource下或磁盘目录下均可;
- 15、支持设置ZK中配置存储路径,方便实现多环境复用ZK集群;
- 16、用户在线修改密码;
- 17、升级依赖版本,如Ehcache、Spring等;
- 18、弹框插件改为使用Layui;
- 19、AdminLTE版本升级;
- 20、Sample项目目录结构规范;
- 21、新增SpringBoot类型Sample项目;
6.8 版本 v1.4.1 新特性[2018-04-12]
- 1、Ehcache缓存对象CacheNode序列化优化;
- 2、XML配置方式,Bean初始化时配置加载逻辑优化;
- 3、升级多项依赖至较新版本:spring、spring-boot、jackson、freemarker、mybatis等;
6.9 版本 v1.4.2 新特性[2018-05-30]
- 1、多环境支持:单个配置中心集群,支持自定义多套环境,管理多个环境的的配置数据;环境之间相互隔离;
- 2、多数据类型配置:支持多种数据类型配置,如:String、Boolean、Short、Integer、Long、Float、Double 等;
- 3、多语言支持:提供配置Agent服务,可据此通过Http获取配置数据,从而实现多语言支持。Agent存在Ehcache缓存性能极高,并且支持集群横向扩展;
- 4、新增 "Jfinal" 类型Sample项目;
- 5、新增 "Nutz" 类型Sample项目;
- 6、支持ZK鉴权信息配置;
- 7、Local Cache缓存长度扩充为100000,采用LRU过期策略。
- 8、配置数据强制编码 UTF-8,解决因操作系统编码格式不一致导致的配置乱码问题;
- 9、XxlConf与原生配置加载方式( "@Value"、"${…}" )兼容,相互隔离,互不影响;替代原LocalConf层;
- 10、移除Spring强制依赖。在保持对Spring良好支持情况下,提高对非Spring环境的兼容性;
- 11、容器组件初始化顺序调整,修复@PostConstruct无法识别问题;
- 12、配置优化,移除冗余配置项;
- 13、小概率情况下BeanRefresh重复刷新问题修复;
- 14、升级pom依赖至较新版本,如Spring、Zookeeper等;
6.10 版本 v1.5.0 新特性[2018-06-15]
- 1、配置中心Agent服务增强:针对非Java应用提供Agent服务获取配置,提供同步、异步两种Http请求方式,原生支持 long-polling(Http) 的方式获取配置数据、并实时感知配置变更。同时,强化请求权限校验;
- 2、配置同步功能:将会检测对应项目下的全部未同步配置项,使用DB中配置数据覆盖ZK中配置数据并推送更新;在配置中心异常恢复、新配置中心集群初始化等场景中十分有效;
- 3、配置快照:客户端从配置中心获取到的配置数据后,会周期性缓存到本地快照文件中,当从配置中心获取配置失败时,将会使用使用本地快照文件中的配置数据;提高系统可用性;
- 4、配置中心,迁移为spring boot项目;
- 5、配置中心,提供官方docker镜像;
- 6、Cglib代理情况下,如 "@Configuration" 注解,Bean无法注入配置问题修复;
- 7、springboot项目加载prop失败的问题修复;
- 8、升级多项maven依赖至较新版本,如spring等;
6.11 版本 v1.5.1 新特性[2018-10-24]
- 1、ftl变量判空问题修复;
- 2、配置快照文件生成时自动创建多层父目录;
- 3、移除ehcache依赖,取消local cache容量限制;
- 4、ZK初始化逻辑优化,避免并发初始化,阻塞至TCP连接创建成功才允许后续操作;
- 5、升级多项maven依赖至较新版本,如spring等;
6.12 版本 v1.5.2 Release Notes[2018-11-13]
- 1、ZK节点watch逻辑优化,配置中心取消冗余的watch操作;
- 2、ZK初始化时unlock逻辑调整,优化断线重连特性;
- 3、Client端ZK初始化逻辑调整,取消对ZK状态的强依赖,连接失败也允许启动,此时使用镜像配置文件;
- 4、修复配置监听首次无效的问题,监听前先get一次该配置;
- 5、新增无框架接入配置中心Sample示例项目 "xxl-conf-sample-frameless"。不依赖第三方框架,快速接入配置中心,只需main方法即可启动运行;
- 6、权限控制增强,细粒度到环境权限校验;
6.13 版本 v1.6.0 Release Notes[2018-11-29]
- 1、轻量级改造:废弃ZK,改为 "DB + 磁盘 + long polling" 方案,部署更轻量,学习更简单;集群部署更方便,与单机一致;
- 2、pom依赖清理、升级;客户端唯一依赖组件为 "slf4j-api",彻底的零依赖。配置中心升级部分依赖;
- 3、Docker基础镜像切换,精简镜像;
- 4、高性能:得益于配置中心的 "磁盘配置" 与客户端的 "LocalCache",因此配置服务性能非常高;单机可承担大量配置请求;
- 5、跨语言:底层通过http服务(long-polling)拉取配置数据并实时感知配置变更,从而实现多语言支持。
- 6、访问令牌(accessToken):为提升系统安全性,配置中心和客户端进行安全性校验,双方AccessToken匹配才允许通讯;
- 7、启动时,优先全量加载镜像数据到registry层,避免逐个请求耗时;
6.14 版本 v1.6.1 Release Notes[迭代中]
TODO LIST
- 本地优先配置:优先加载该配置中数据,常用于本地调试。早期版本功能实用性低,现已移除,考虑是否完全移除;
- 注册中心特性:原生支持注册中心功能,强一致性推送注册信息;
- 分布式锁特性:原生支持分布式锁功能;
- 支持托管配置文件,properties或yml,待考虑,不利于配置复用与细粒度管理;
- 配置中心告警功能;
- 灰度发布:将配置推送到指定环境上的指定ip或者指定模块进程;
- 配置的发布也可以考虑增加审核功能;
- XxlConfClient 更名为 XxlConf。
- 配置告警:底层DB异常时,主动推送告警信息;推送粒度为管理员还是配置影响用户,未定;
- 配置列表只展示有权限的项目列表,无有权限项目时限制不允许登陆;
- 配置日志优化,支持一件回滚与对比:
- 配置锁:项目粒度,管理员锁定后,禁止普通用户直接操作;
- 锁定Key变更,需要申请和审核;
- 灰度发布
- 配置关注:关注Key变更发送邮件通知;
来源(书栈小编注)
http://www.xuxueli.com/xxl-conf/#/