官网地址:https://github.com/xuxueli/xxl-conf
目前支持 java平台,后续官方可能扩展。
项目目录如下:
接下来介绍大家怎么使用:
1、首先启动Zookeeper(xxl-conf依赖zk)
ZK之watcher普及(来源官方文档,以及网络博客)
1、可以注册watcher的方法:getData、exists、getChildren。 2、可以触发watcher的方法:create、delete、setData。连接断开的情况下触发的watcher会丢失。 3、一个Watcher实例是一个回调函数,被回调一次后就被移除了。如果还需要关注数据的变化,需要再次注册watcher。 4、New ZooKeeper时注册的watcher叫default watcher,它不是一次性的,只对client的连接状态变化作出反应。(推荐ZK初始化时, 主动Watcher如exists) 5、实现永久监听: 由于zookeeper是一次性监听,所以我们必须在wather的process方法里面再设置监听。 6、getChildren("/path")监视/path的子节点,如果(/path)自己删了,也会触发NodeDeleted事件。
2、引入jar包maven 中央仓库地址
com.xuxueli xxl-conf-core 1.3.0
net.sf.ehcache ehcache 2.9.1
前置工作完毕,现在开始使用(以Spring项目为例子)
1、在spring配置文件中加入
2、在配置文件中引用值方式是${xxxx},实例如下:
大家可能会有疑问,例如${jdbc.mysqlurl}这些值是在哪里设置的呢?接下来给大家介绍xxl-con的后台管理系统
项目:xxl-conf-admin 作用:查询和管理线上配置信息
1、使用maven编译xxl-conf-admin项目,会在项目target目录下,生成一个war包(war包丢到web应用服务器例如tomcat下可以直接运行)
2、xxl-conf-admin连接Zookeeper,因为admin是依赖core的,我们大家一起看看core的源代码。
以上是core的官方代码,这里是获取配置文件中的值。
配置文件中是连接的zk地址。
这里我对源代码进行部分修改,因为上述源代码中只是基于linux等操作系统。我本地运行环境是windows,根据上述目录找不到此文件目录,这样会导致连接不上zk,项目无法运行。这里我把
private static final String ZK_ADDRESS_FILE = "/data/webapps/xxl-conf.properties";
修改为
private static final String ZK_ADDRESS_FILE =System.getProperty("os.name").equals("Linux")?"/data/webapps/xxl-conf.properties": "C:/xxl-conf.properties";
如果是windows操作系统,则在c盘根目录找到xxl-conf.properties配置文件。
更改为源代码以后需要重新编译core项目跟admin项目
3、 配置jdbc数据源,数据备份
配置“JDBC链接”:
4、配置后台管理登录用户名,密码
配置“登录账号和密码”: