代码参考 github 仓库 /test 目录: https://github.com/xuxueli/xxl-conf/tree/master/xxl-conf-samples
1 、XXL- CONF 搭建:一行命令启动配置中心&注册中心,一站式提供动态配置管理、服务注册及发现能力(下文只演示配置中心能力)。
2 、XXL-CONF 接入配置:与 Spring 无缝集成,也支持无框架接入。
@Bean
public SpringXxlConfFactory xxlConfFactory() {
SpringXxlConfFactory xxlConfFactory = new SpringXxlConfFactory();
xxlConfFactory.setAppname(appname);
xxlConfFactory.setEnv(env);
xxlConfFactory.setAddress(address);
xxlConfFactory.setAccesstoken(accesstoken);
return xxlConfFactory;
}
经过上述 2 步,已完成全部配置工作。
3 、客户端接入: 丰富配置获取方式,支持秒级&热更新
/**
* API 方式
*
* - 参考 "IndexController" 中 "XxlConfHelper.get("key")" 即可;
* - 用法:代码中直接调用 API 即可,API 支持多数据类型,可快速获取各类型配置;
* - 优点:
* - API 编程,灵活方便;
* - 支持多数据类型
* - 配置从配置中心实时加载,且底层存在动态推动更新,实效性有保障;
* - 底层存在配置 LocalCache ,且存在缓存击穿等防护,性能有保障;
*/
String paramByApi = XxlConfHelper.get("sample.key01", null);
/**
* 注解方式
*
* - 参考 "IndexController.paramByAnnotation" 属性配置;
* - 用法:对象 Field 上加注解 ""@XxlConf";支持设置默认值、跨服务复用配置,以及设置是否动态刷新;
* - 优点:
* - 注解编程,简洁易用;
* - 支持多数据类型
* - 配置从配置中心实时加载,且底层存在动态推动更新,实效性有保障;
* - 注解属性自身承担数据存储职责,无外部请求逻辑,无性能风险;
*/
@XxlConf("sample.key02")
public String paramByAnnotation;
/**
* 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 是一个 分布式服务管理平台,作为服务 配置中心 与 注册中心,提供 动态配置管理、服务注册与发现 等核心能力;拥有 “轻量级、秒级实时推送、多环境、跨语言、跨机房、权限控制” 等特性。现已开放源代码,开箱即用。
1
quzard 7 小时 28 分钟前 via iPhone
xxl 的日志能提供一下按数量压缩归档的机制吗?对日志采集压力比较大
|