V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xuxueli
V2EX  ›  Java

XXL-CONF v1.6.0 发布,分布式配置管理平台。废弃 ZK 轻量级架构升级

  •  
  •   xuxueli · 2018-11-29 11:46:41 +08:00 · 1838 次点击
    这是一个创建于 2180 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Release Notes

    • 1、轻量级改造:废弃 ZK,改为 "DB + 磁盘 + long polling" 方案,部署更轻量,学习更简单;集群部署更方便,与单机一致;
    • 2、pom 依赖清理、升级;客户端唯一依赖组件为 "slf4j-api",彻底的零依赖。配置中心升级部分依赖;
    • 3、Docker 基础镜像切换,精简镜像;
    • 4、高性能:得益于配置中心的 "磁盘配置" 与客户端的 "LocalCache",因此配置服务性能非常高;单机可承担大量配置请求;
    • 5、跨语言:底层通过 http 服务( long-polling )拉取配置数据并实时感知配置变更,从而实现多语言支持。
    • 6、访问令牌( accessToken ):为提升系统安全性,配置中心和客户端进行安全性校验,双方 AccessToken 匹配才允许通讯;
    • 7、启动时,优先全量加载镜像数据到 registry 层,避免逐个请求耗时;

    简介

    XXL-CONF 是一个轻量级分布式配置管理平台,拥有"轻量级、秒级动态推送、多环境、多语言、配置监听、权限控制、版本回滚"等特性。现已开放源代码,开箱即用。

    输入图片说明

    特性

    • 1、简单易用: 接入灵活方便,一分钟上手;
    • 2、轻量级: 部署简单,不依赖第三方服务,一分钟上手;
    • 3、配置中心 HA:配置中心支持集群部署,提升配置中心系统容灾和可用性。
    • 4、在线管理: 提供配置中心, 通过 Web 界面在线操作配置数据,直观高效;
    • 5、多环境支持:单个配置中心集群,支持自定义多套环境,管理多个环境的的配置数据;环境之间相互隔离;
    • 6、多数据类型配置:支持多种数据类型配置,如:String、Boolean、Short、Integer、Long、Float、Double 等;
    • 7、跨语言:底层通过 http 服务( long-polling )拉取配置数据并实时感知配置变更,从而实现多语言支持。
    • 8、高性能:得益于配置中心的 "磁盘配置" 与客户端的 "LocalCache",因此配置服务性能非常高;单机可承担大量配置请求;
    • 9、实时性: 秒级动态推送;配置更新后, 实时推送配置信息, 项目中配置数据会实时更新并生效, 不需要重启线上机器;
    • 10、配置变更监听功能:可开发 Listener 逻辑,监听配置变更事件,可据此动态刷新 JDBC 连接池等高级功能;
    • 11、最终一致性:底层借助内置广播机制,保障配置数据的最终一致性,从而保证配置数据的同步;
    • 12、配置备份: 配置数据同时在磁盘与 MySQL 中存储和备份,并定期同步, 提高配置数据的安全性;
    • 13、多种获取配置方式:支持 "API、 注解、XML 占位符" 等多种方式获取配置,可灵活选择使用;
    • 14、兼容 Spring 原生配置:兼容 Spring 原生配置方式 "@Value"、"${}" 加载本地配置功能;与分布式配置获取方式隔离,互不干扰;
    • 15、分布式: 支持多业务线接入并统一管理配置信息,支撑分布式业务场景;
    • 16、项目隔离: 以项目为维度管理配置, 方便隔离不同业务线配置;
    • 17、高性能: 通过 LocalCache 对配置数据做缓存, 提高性能;
    • 18、客户端断线重连强化:设置守护线程,周期性检测客户端连接、配置同步,提高异常情况下配置稳定性和时效性;
    • 19、空配置处理:主动缓存 null 或不存在类型配置,避免配置请求穿透到远程配置 Server 引发雪崩问题;
    • 20、用户管理:支持在线添加和维护用户,包括普通用户和管理员两种类型用户;
    • 21、配置权限控制;以项目为维度进行配置权限控制,管理员拥有全部项目权限,普通用户只有分配才拥有项目下配置的查看和管理权限;
    • 22、历史版本回滚:记录配置变更历史,方便历史配置版本回溯,默认记录 10 个历史版本;
    • 23、配置快照:客户端从配置中心获取到的配置数据后,会周期性缓存到本地快照文件中,当从配置中心获取配置失败时,将会使用使用本地快照文件中的配置数据;提高系统可用性;
    • 24、访问令牌( accessToken ):为提升系统安全性,配置中心和客户端进行安全性校验,双方 AccessToken 匹配才允许通讯;

    文档地址

    技术交流

    5 条回复    2018-11-30 09:48:09 +08:00
    tao1991123
        1
    tao1991123  
       2018-11-29 11:49:36 +08:00
    https://nacos.io/
    了解一下 阿里开源的 服务注册发现&配置中心 无缝接入 SpringCloud & Dubbo
    xuxueli
        2
    xuxueli  
    OP
       2018-11-29 12:02:25 +08:00
    @tao1991123 XXL-CONF 比 nacos 提早发布两年,相较于其他同类型产品,拥有多项实用特性:

    1、轻量级:无论单机还是集群部署,相较于同类产品保持更轻;
    2、数据安全:多级 ( DB + 磁盘 + 镜像文件)数据存储,配置保证数据安全。
    3、多级容灾:无论 DB 宕机、配置中心集群全节点宕机,甚至 DB+配置中心全部宕机,接入方毫无影响,可正常发布部署,等待配置中心回复后刷新同步最新配置数据。
    4、动态推送更新:比如 Spring Bean 其中一个属性使用 XXL-CONF 配置,该配置更新后将会动态刷新该 Bean 该属性值,自动进行。
    5、Web 界面:提供完善的用户、权限、人员、项目、配置管理功能,均可在线操作。

    ……

    多环境、多语言、多数据类型

    ……

    更多特性,可以参考文档。
    HidingKing
        3
    HidingKing  
       2018-11-29 15:44:23 +08:00
    百度的 disconf 了解一下
    xuxueli
        4
    xuxueli  
    OP
       2018-11-29 20:46:54 +08:00 via Android
    @HidingKing
    ~~~
    配置中心我写了两年了,你们说的这些都有了解,底层原理优劣相信更熟悉一些,你提到的 disconf 已经两年没迭代处理 issue 了,应该已经被放弃了。

    XXL-CONF 迭代两年期间,积累下来的二十多项特性,和一批企业级用户,已经体现了 XXL-CONF 价值。

    docker hub 上将近 2000 次多次 pull 记录,也证明了 XXL-CONF 的易用性。

    两行命令即可搭建运行配置中心,将开箱即用做到极致。我们还有 19 个社区 qq 群,社区也很活跃~
    HidingKing
        5
    HidingKing  
       2018-11-30 09:48:09 +08:00
    @xuxueli 你为啥这么喜欢造轮子啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2714 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:35 · PVG 19:35 · LAX 03:35 · JFK 06:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.