Release Notes
- 1 、 [升级] 升级至 SpringBoot4 ;升级多项 maven 依赖至较新版本,如 springboot 、spring 、mybatis 、xxl-sso 等;
- 2 、 [新增] 容灾降级:客户端会周期性同步配置到本地快照文件(新增配置项设置本地文件目录“xxl.conf.client.filepath”);在极端情况配置中心不可用时(如配置中心宕机),客户端降级使用本地配置快照文件,保障系统可用性;
- 3 、 [增强] 一致性保障强化:强加建设 “启动预热+全量巡检+增量监听” 相结合的一致性保障策略。启动阶段主动初始化全量远程配置至本地,提供周期性配置比对巡检能力以及增量变更感知推动能力,确保配置数据准确性与一致性。
- 4 、 [新增] 新增 Docker Compose 配置,支持一键配置启动调度中心集群;
- 5 、 [优化] 配置编辑器:升级为 CodeMirror ,提升交互体验;
- 6 、 [优化] 配置 Diff:支持行维度对比配置数据变更,提升配置安全及追溯效率;
- 7 、 [重构] 配置监听重构为异步队列处理机制,避免耗时监听逻辑影响系统性能;
- 8 、 [优化] 组件线程代码重构,提升性能以及可维护性;
- 9 、 [优化] 增加主题皮肤选项并优化界面交互;
- 10 、 [优化] 操作体验优化:表格交互调整为单行选中模式;禁用分页循环;优化分页限制文案;
- 11 、 [优化] 交互优化:仪表板统计信息展示完善;新增配置默认选中当前服务;
- 12 、 [优化] 重构项目依赖管理,将依赖版本统一到父级 pom ;
备注:
- a 、该版本新增支持“启动预热”、“容灾降级”等新特性,客户端 SDK 依赖需要一并升级;
- b 、该版本新增支持配置变更 Diff ,相关日志表需要新增字段,需要执行如下 SQL 脚本
// 表变更 SQL 脚本: alter table xxl_conf_data_log add old_value text not null comment '变更前,配置项 Value';
XXL- CONF 快速部署
XXL-CONF 支持以 Docker Compose 方式快速部署并启动。
// 1 、下载 XXL-CONF git clone --branch "$(curl -s https://api.github.com/repos/xuxueli/xxl-conf/releases/latest | jq -r .tag_name)" https://github.com/xuxueli/xxl-conf.git // 2 、构建 XXL-CONF mvn clean package -Dmaven.test.skip=true // 3 、启动 XXL-CONF MYSQL_PATH={自定义数据库持久化目录} docker compose up -d // 4 、停止 XXL-CONF docker compose down
XXL- CONF 接入示例
XXL- CONF ,一行命令启动配置中心&注册中心,一站式提供动态配置管理、服务注册及发现能力(下文只演示配置中心能力)。 
1 、XXL-CONF 接入配置:与 Spring 无缝集成,也支持无框架接入。
@Bean public SpringXxlConfBootstrap xxlConfBootstrap() { SpringXxlConfBootstrap xxlCOnfBootstrap= new SpringXxlConfBootstrap(); xxlConfBootstrap.setAppname(appname); xxlConfBootstrap.setEnv(env); xxlConfBootstrap.setAddress(address); xxlConfBootstrap.setAccesstoken(accesstoken); xxlConfBootstrap.setFilepath(filepath); return xxlConfBootstrap; }
经过上述 2 步,已完成全部配置工作。
3 、客户端接入: 支持丰富配置获取方式,支持秒级&热更新
- 3.1 、方式 1: API 方式( XxlConfHelper )
/** * API 方式 * * - 参考 "IndexController" 中 "XxlConfHelper.get("key")" 即可; * - 用法:代码中直接调用 API 即可,API 支持多数据类型,可快速获取各类型配置; * - 优点: * - API 编程,灵活方便; * - 支持多数据类型 * - 配置从配置中心实时加载,且底层存在动态推动更新,实效性有保障; * - 底层存在配置 LocalCache ,且存在缓存击穿等防护,性能有保障; */ String paramByApi = XxlConfHelper.get("sample.key01", null);
- 3.2 方式 2: 注解方式(@XxlConf )
/** * 注解方式 * * - 参考 "IndexController.paramByAnnotation" 属性配置; * - 用法:对象 Field 上加注解 ""@XxlConf";支持设置默认值、跨服务复用配置,以及设置是否动态刷新; * - 优点: * - 注解编程,简洁易用; * - 支持多数据类型 * - 配置从配置中心实时加载,且底层存在动态推动更新,实效性有保障; * - 注解属性自身承担数据存储职责,无外部请求逻辑,无性能风险; */ @XxlConf("sample.key02") public String paramByAnnotation;
- 3.3 、方式 3: 监听器方式( XxlConfListener )
/** * Listener / 监听器方式 * * - 参考 "IndexController" 中 "XxlConfHelper.addListener(...)" 即可; * - 用法:配置变更监听示例:可开发 Listener 逻辑,监听配置变更事件;可据此实现动态刷新 线程池、JDBC 链接池 等高级功能; * - 优点: * - 监听器方式,扩展性更强; * - 支持多数据类型 * - 配置从配置中心实时加载,且底层存在动态推动更新,实效性有保障; */ XxlConfHelper.addListener("sample.key03", new XxlConfListener(){ @Override public void onChange(String appname, String key, String value) throws Exception { paramByListener = value; logger.info("XxlConfListener 配置变更事件通知:key={}, value={}", key, value); } });
简介
XXL-CONF 是一个 分布式服务管理平台,作为服务 配置中心 与 注册中心,提供 动态配置管理、服务注册与发现 等核心能力;拥有 “轻量级、秒级实时推送、多环境、跨语言、跨机房、权限控制” 等特性。现已开放源代码,开箱即用。
特性:配置中心

- 1 、简单易用: 接入灵活方便,一分钟上手;
- 2 、轻量级: 仅依赖 DB 无其他三方依赖,搭建部署及接入简单,一分钟上手;
- 3 、WebUI: 配置中心提供线上化管理界面, 通过 Web UI 在线操作配置数据,直观高效;
- 4 、高可用/HA:配置中心支持集群部署,提升配置中心系统容灾和可用性;
- 5 、高性能:得益于配置中心与客户端的本地缓存以及多级缓存设计,因此配置读取性能非常高;单机可承担高并发配置读取;
- 6 、实时性保障: 系统设计内部广播机制,针对配置修改、增删等变更,支持秒级推送变更配置到客户端;
- 7 、一致性保障:设计 “启动预热+全量巡检+增量监听” 相结合的一致性保障策略。启动阶段主动初始化全量远程配置至本地,提供周期性配置比对巡检能力以及增量变更感知推动能力,确保配置数据准确性与一致性。
- 8 、动态热更新:配置数据变更后,客户端配置数据会实时动态更新、并生效,不需要重启服务机器;
- 9 、容灾降级:客户端会周期性同步配置数据到本地配置快照文件,在极端情况配置中心不可用时(如配置中心宕机),客户端会降级使用本地配置快照文件,保障系统可用性;
- 10 、多数据类型:支持多种数据类型配置,如:String 、Boolean 、Short 、Integer 、Long 、Float 、Double 等;
- 11 、多接入方式:支持 "API 、 注解、Listener" 等多种方式获取配置,可灵活选择使用;
- 12 、配置变更监听:支持自定义 Listener 逻辑,监听配置变更事件,比如可据此动态刷新 JDBC 连接池等高级功能;
- 13 、多环境支持:支持自定义环境(命名空间),管理多个环境的的配置数据;环境之间相互隔离;
- 14 、跨语言/OpenAPI:提供语言无关的 配置中心 OpenAPI ( RESTFUL 格式),提供拉取配置与实时感知配置变更能力,实现多语言支持;
- 15 、跨机房:得益于配置中心系统设计,服务端为无状态服务,集群各节点提供对等的服务;因此异地跨机房部署时,只需要请求本机房配置中心即可,实现异地多活;
- 16 、客户端断线重连强化:底层设计守护线程,周期性检测客户端连接、配置同步,提高异常情况下配置稳定性和时效性;
- 17 、空配置处理:主动缓存 null 或不存在类型配置,避免配置请求穿透到远程配置 Server 引发雪崩问题;
- 18 、访问令牌( AccessToken ):为提升系统安全性,服务端和客户端进行安全性校验,双方 AccessToken 匹配才允许通讯;
- 19 、用户管理:支持在线添加和维护用户,包括普通用户和管理员两种类型用户,灵活管控系统权限;
- 20 、配置权限控制;以项目为维度进行配置权限控制,管理员拥有全部项目权限,普通用户只有分配才拥有项目下配置的查看和管理权限;
- 21 、历史版本回滚:配置变更后及时记录配置变更历史,支持历史配置版本对比及快速回溯;
- 22 、容器化:提供官方 docker 镜像,并实时更新推送 DockerHub ,进一步实现产品开箱即用;
特性:注册中心

- 1 、简单易用: 接入灵活方便,一分钟上手;
- 2 、轻量级: 仅依赖 DB 无其他三方依赖,搭建部署及接入简单,一分钟上手;
- 3 、高可用/HA:注册中心支持集群部署,提升注册中心系统容灾和可用性;
- 4 、高性能:得益于注册中心与客户端的本地缓存以及多级缓存设计,因此注册数据读取性能非常高;单机可承担高并发配置读取;
- 5 、实时性: 借助内部广播机制,新服务上线、下线等变更,支持秒级推送变更配置到客户端;
- 6 、多环境支持:支持自定义环境(命名空间),管理多个环境的的服务注册数据;环境之间相互隔离;
- 7 、跨语言/OpenAPI:提供语言无关的 注册中心 OpenAPI ( RESTFUL 格式),提供服务 注册、注销、心跳、查询 等能力,实现多语言支持;
- 8 、跨机房:得益于注册中心系统设计,服务端为无状态服务,集群各节点提供对等的服务;因此异地跨机房部署时,只需要请求本机房配置中心即可,实现异地多活;
- 9 、多状态:服务内置多状态,支持丰富业务使用场景。正常状态=支持动态注册、发现,服务注册信息实时更新;锁定状态=人工维护注册信息,服务注册信息固定不变;禁用状态=禁止使用,服务注册信息固定为空;
- 10 、访问令牌( AccessToken ):为提升系统安全性,服务端和客户端进行安全性校验,双方 AccessToken 匹配才允许通讯;
- 11 、用户管理:支持在线添加和维护用户,包括普通用户和管理员两种类型用户,灵活管控系统权限;
- 12 、容器化:提供官方 docker 镜像,并实时更新推送 dockerhub ,进一步实现产品开箱即用;