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

XXL-CONF v1.4.1 发布,分布式配置管理平台

  •  
  •   xuxueli · 2018-04-12 18:34:49 +08:00 · 2324 次点击
    这是一个创建于 2451 天前的主题,其中的信息可能已经有所发展或是发生改变。

    版本新特性:

    • 1、Ehcache 缓存对象 CacheNode 序列化优化;
    • 2、XML 配置方式,Bean 初始化时配置加载逻辑优化;
    • 3、升级多项依赖至较新版本:spring、spring-boot、jackson、freemarker、mybatis 等;

    输入图片说明

    《分布式配置管理平台 XXL-CONF 》

    XXL-CONF 是一个分布式配置管理平台,提供统一的配置管理服务。现已开放源代码,开箱即用。

    特性

    • 1、简单: 提供简洁实用的 API,多种方式灵活获取配置,上手简单;
    • 2、在线管理: 提供配置中心, 通过 Web 界面在线操作配置数据;
    • 3、动态推送: 配置更新后, Zookeeper 实时推送配置信息, 项目中配置数据会实时更新并生效, 不需要重启线上机器;
    • 4、配置中心 HA:配置中心支持集群部署,提供系统可用性;
    • 5、推送服务 HA: 配置服务基于 ZK 集群, 只要集群节点保证存活数量大于 N/2N+1, 就可保证服务稳定, 避免单点风险;
    • 6、高性能: 通过 Ehcache 对 ZK 推送的配置做 Local Cache, 提高性能;
    • 7、客户端断线重连强化:除了依赖 ZK 之外,设置守护线程,提高异常情况下配置稳定性和时效性;
    • 8、配置备份: 配置数据同时在 ZK 与 MySQL 中存储和备份, 提高配置数据的安全性;
    • 9、分布式: 支持多业务线接入并统一管理配置信息,支撑分布式业务场景;
    • 10、项目隔离: 以项目为维度管理配置, 方便隔离不同业务线配置;
    • 11、多种获取配置方式:支持 "API、 @XxlConf、XML" 三种方式获取配置,可灵活选择使用;
    • 12、配置变更监听功能:可开发 Listener 逻辑,监听配置变更事件,可据此动态刷新 JDBC 连接池等高级功能;
    • 13、空配置处理:主动缓存 null 或不存在类型配置,避免配置请求穿透到 ZK 引发雪崩问题;
    • 14、用户管理:支持在线添加和维护用户,包括普通用户和管理员两种类型用户;
    • 15、配置权限控制;以项目为维度进行配置权限控制,管理员拥有全部项目权限,普通用户只有分配才拥有项目下配置的查看和管理权限;
    • 16、历史版本回滚:记录配置变更历史,方便历史配置版本回溯,默认记录 10 个历史版本;

    技术交流

    官方文档

    9 条回复    2018-05-17 09:47:39 +08:00
    xuxueli
        1
    xuxueli  
    OP
       2018-04-12 18:59:37 +08:00
    即将迁移 spring boot,并推送 docker 镜像;

    感兴趣的小伙伴欢迎 ISSUE 和 PR,欢迎加入社区,共同建设和维护 :)
    denghongcai
        2
    denghongcai  
       2018-04-12 19:17:49 +08:00
    架构图画的挺清晰;重客户端

    有个疑问:XXL-CONF-CORE 是 GPLv3 的 LICENSE,这让人怎么用呢?是不是 https://github.com/xuxueli/xxl-conf#development 列出来的公司都应该把他们的代码给公开了?
    onion83
        3
    onion83  
       2018-04-12 19:37:00 +08:00
    360 qconf 了解一下?
    xuxueli
        4
    xuxueli  
    OP
       2018-04-12 20:30:41 +08:00 via Android
    @denghongcai 你好,感谢支持!

    至于 gpl,可以了解下 mysql、linux,他们也是 gpl 协议,但是任何人可以免费自由的使用。

    这里有阮易锋的一篇关于的 gpl 的文章: http://www.ruanyifeng.com/blog/2010/02/why_gpl_is_a_better_choice.html

    XXL 系列产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。

    这条路我们已经坚持了三年,XXL 社区群聚集了 4000+0 用户,到相信这仅仅是开始!
    xuxueli
        5
    xuxueli  
    OP
       2018-04-12 20:37:06 +08:00 via Android
    @onion83 qconf 挺不错。

    但是,XXL-JOB 对于 Java 需要更加友好。

    比如: "XML,API,注解"三种配置加载方式,良好的编程体验,权限控制,版本回溯,毫秒级推送更新,bean 属性刷新支持,springboot 原生支持,配置监听 listener ……等等。

    如果你是 Java 系,相信你会爱上她!

    欢迎体验啊!
    denghongcai
        6
    denghongcai  
       2018-05-15 15:38:19 +08:00
    @xuxueli 我的问题是你的客户端是 GPL 的,把你客户端引入项目会传染项目也为 GPL,是不是客户端应该单独一个许可证
    xuxueli
        7
    xuxueli  
    OP
       2018-05-16 10:22:28 +08:00
    @denghongcai 这个不会的啊,可以参考下 Mysql、Linux 都是 GPL 协议,二者可谓是互联网公司的基石,个人和企业内部都可以自由使用。
    denghongcai
        8
    denghongcai  
       2018-05-16 20:23:51 +08:00
    @xuxueli 你是完全没理解我的意思还是说只是个复读机?

    XXL-CONF-CORE 是需要被 link 到使用者应用里的,你的 GPL 授权会导致使用者应用也需要遵守 GPL。如果只是在服务端还好,如果有机会分发到用户,使用者的应用就有强制公开源码的法务风险

    Linux 并没有 link 到使用者应用里
    MySQL 的 JDBC Driver 是 GPL 的,只要应用需要分发,都得买 MySQL 的商业授权,所以才会有官方之外的一堆 LGPL 授权的 Driver
    xuxueli
        9
    xuxueli  
    OP
       2018-05-17 09:47:39 +08:00 via Android
    @denghongcai 朋友,请注意你的言辞。

    类似 mysql 和 linux,任何人可以自由使用、定制开发、售卖数据和提供的服务,自由且免费。

    但是抱歉,打包售卖软件("向客户分发软件"),还请遵循协议。

    缘由可以参考上面 "阮一锋" 的文章。

    言尽于此。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2758 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:37 · PVG 14:37 · LAX 22:37 · JFK 01:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.