当前位置:首页 > 站长资讯 > 正文内容

XXL-CONF v2.2.0 | 分布式配置中心与注册中心

a811625531个月前 (01-03)站长资讯12

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 接入示例

1、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部署完成后可访问查看如下控制台。一站式提供动态配置管理、服务注册及发现能力。

2、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、XXL-CONF 业务应用接入: 此处只配置中心能力,支持丰富配置获取方式,支持秒级&热更新

  • 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 是一个 分布式服务管理平台,作为服务 配置中心 与 注册中心,提供 动态配置管理、服务注册与发现 等核心能力;拥有 “轻量级、秒级实时推送、多环境、跨语言、跨机房、权限控制” 等特性。现已开放源代码,开箱即用。

  • 中文文档: https://www.xuxueli.com/xxl-conf/
  • -Github地址 https://github.com/xuxueli/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,进一步实现产品开箱即用;

源码地址:点击下载

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/32571.html

分享给朋友:

“XXL-CONF v2.2.0 | 分布式配置中心与注册中心” 的相关文章

高强度竞争领域注定容不下安逸,等待敲锣的协和电子正走在掉队的路上?

高强度竞争领域注定容不下安逸,等待敲锣的协和电子正走在掉队的路上?

  扎根印制电路板技术研发二十年,专注于汽车电子、高频通讯等中高端领域的协和电子(605258)本周启动招股,下周四(11月19日)即将网上申购。   多年的沉淀,令其收获了一批优质客户。不过随着行业规模增长放缓、各类成本抬升以及行业龙头集中度提高,协和电子往日优势逐渐消退,利润水平也逐年降低,此...

手握采购、研发、销售三条“命脉” 谁是操控创耀科技命运的神秘“公司A”

手握采购、研发、销售三条“命脉” 谁是操控创耀科技命运的神秘“公司A”

  1947年,美国贝尔实验室的威廉.肖克利和他的两位助手布拉顿、巴丁,研制出了世界上第一只晶体管,为集成电路产业打开时代大门,也造就了现代信息社会的根基――“芯片”。   但是现代信息社会并不能避不开国与国之间的问题。   “芯片强则产业强,芯片兴则经济兴,没有高端芯片就没有真正的产业安全和国...

19%市占率换不来业绩体量的和林微纳 新业务0.24%市占率又该如何期待?

19%市占率换不来业绩体量的和林微纳 新业务0.24%市占率又该如何期待?

  以19%市占率位居精微屏蔽罩市场头部玩家的和林微纳,即将亮相科创板。   2021年3月9日,主要产品为微机电(MEMS)精微电子零部件的和林微纳,开启了科创板招股。公司与楼氏电子、瑞声科技、裕元电子和银河机械,一同成为精微屏蔽罩市场的主要玩家,2019年五家企业合计占到全球市场总份额的80%...

华恒生物:近半市占率的细分龙头 竟然只能“被动挨打”丨

华恒生物:近半市占率的细分龙头 竟然只能“被动挨打”丨

  全球最大的丙氨酸生产商华恒生物,即将亮相科创资本市场。   2021年4月7日,以合成生物技术为核心,主要从事氨基酸及其衍生物产品研发、生产、销售的华恒生物,于科创板开启了路演询价环节,距离正式亮相科创板仅剩一步之遥。      图/Wind   目前,华恒生物拥有接近50%的市场占有率...

瑞华泰:主业停滞、产能重研发轻、债务高筑、实控人空悬… 压力重重 何去何从?丨

瑞华泰:主业停滞、产能重研发轻、债务高筑、实控人空悬… 压力重重 何去何从?丨

  瑞华泰,一家打破“卡脖子”材料高端PI薄膜的企业,日前正在做科创资本市场的最后冲刺。   2021年4月14日,专注于高性能PI薄膜领域技术自主研发的制造商瑞华泰,已经开启路演及询价环节,距离正式科创板资本市场仅剩最后一步之遥。目前,公司已建立了完整的PI薄膜研发和产业化的核心技术体系,成功进...

四个交易日大跌24%、16.6亿资金疯狂逃离 真爱美家股价过山车的背后丨

四个交易日大跌24%、16.6亿资金疯狂逃离 真爱美家股价过山车的背后丨

  四个交易日高位逆势大跌24%,共计16.6亿资金逃离,上市仅10多天的真爱美家(003041.SZ)正经历大资金高位套现离场。   资料显示,真爱美家是一家以毛毯出口为主的家用纺织企业,公司于2021年4月6日正式登陆资本市场。4月15日,公司涨停封板态势突然崩溃,股价掉头向下,当天最大跌幅触...