/xxl-conf

A lightweight distributed configuration management platform. (分布式配置管理平台XXL-CONF)

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

XXL-CONF

XXL-CONF, A lightweight distributed configuration management platform.
-- Home Page --

Introduction

XXL-CONF is a lightweight distributed configuration management platform, with features such as "lightweight, second dynamic push, multi-environment, cross-language, cross-room deployment, configuration listening, permission control, version rollback". Now, it's already open source, real "out-of-the-box".

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

Documentation

Features

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

Development

于2015年,我在github上创建XXL-CONF项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计……

至今,XXL-CONF已接入多家公司的线上产品线,接入场景如电商业务,O2O业务和核心中间件配置动态化等,截止2018-03-15为止,XXL-CONF已接入的公司包括不限于:

- 1、深圳市绽放工场科技有限公司
- 2、深圳双猴科技有限公司
- 3、商智神州软件有限公司
- 4、浙江力太科技
- ……

更多接入的公司,欢迎在 登记地址 登记,登记仅仅为了产品推广。

欢迎大家的关注和使用,XXL-CONF也将拥抱变化,持续发展。

Communication

Contributing

Contributions are welcome! Open a pull request to fix a bug, or open an Issue to discuss a new feature or change.

欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 Issue 讨论新特性或者变更。

Copyright and License

This product is open source and free, and will continue to provide free community technical support. Individual or enterprise users are free to access and use.

  • Licensed under the GNU General Public License (GPL) v3.
  • Copyright (c) 2015-present, xuxueli.

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

Donate

No matter how much the donation amount is enough to express your thought, thank you very much :) To donate

无论捐赠金额多少都足够表达您这份心意,非常感谢 :) 前往捐赠