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 是一個 分佈式服務管理平台,作為服務 配置中心 與 註冊中心,提供 動態配置管理、服務註冊與發現 等核心能力;擁有 “輕量級、秒級實時推送、多環境、跨語言、跨機房、權限控制” 等特性。現已開放源代碼,開箱即用。
- 中文文檔
- Github地址
特性:配置中心

- 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,進一步實現產品開箱即用;