TutorialSummary 分布式配置系统功能概述
=======
## 托管配置 ##
通过简单的注解类方式 托管配置。托管后,本地不需要此配置文件,统一从配置中心服务获取。
当配置被更新后,**注解类的数据自动同步**。
@Service
@DisconfFile(filename = "redis.properties")
public class JedisConfig {
// 代表连接地址
private String host;
// 代表连接port
private int port;
/**
* 地址, 分布式文件配置
*
* @return
*/
@DisconfFileItem(name = "redis.host", associateField = "host")
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
/**
* 端口, 分布式文件配置
*
* @return
*/
@DisconfFileItem(name = "redis.port", associateField = "port")
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
}
[Tutorial1](../../tutorial-client/Tutorial1.html)
## 配置更新回调 ##
如果配置更新时,您需要的是 **不仅注解类自动同步,并且其它类也需要做些变化**,那么您需要一个回调来帮忙。
@Service
@Scope("singleton")
@DisconfUpdateService(classes = { JedisConfig.class }) // 这里或者写成 @DisconfUpdateService(confFileKeys = { "redis.properties" })
public class SimpleRedisServiceUpdateCallback implements IDisconfUpdate
[Tutorial2](../../tutorial-client/Tutorial2.html)
## 支持基于XML的配置文件托管 ##
除了支持基于注解式的配置文件,我们还支持 基于XML无代码侵入式的:
(properties文件更新时数据自动同步reload,非properties文件需要写回调来支持数据自动同步)
classpath:/autoconfig.properties
classpath:/autoconfig2.properties
classpath:/myserver_slave.properties
classpath:/testJson.json
classpath:/testXml2.xml
myserver.properties
[Tutorial8](../../tutorial-client/Tutorial8.html)
## 支持配置项 ##
变量亦支持分布式配置哦
@DisconfItem(key = key)
public Double getMoneyInvest() {
return moneyInvest;
}
[Tutorial3](../../tutorial-client/Tutorial3.html)
## 支持静态配置 ##
除了支持@Service类以外,我们还支持 静态配置
@DisconfFile(filename = "static.properties")
public class StaticConfig {
private static int staticVar;
@DisconfFileItem(name = "staticVar", associateField = "staticVar")
public static int getStaticVar() {
return staticVar;
}
}
[Tutorial4](../../tutorial-client/Tutorial4.html)
## 支持基于XML的配置文件托管: 不会自动reload ##
与 **支持基于XML的配置文件托管** 相对应,只是在配置文件更改时,不会自动reload到java bean里。
值得说的是,此种方式支持 任意类型 格式配置文件。
myserver.properties
[Tutorial5](../../tutorial-client/Tutorial5.html)
## 过滤要进行托管的配置 ##
有时候你不想托管所有的配置文件,有1~2个配置文件你只想和本地的,可以:
# 忽略哪些分布式配置,用逗号分隔
ignore=jdbc-mysql.properties
[Tutorial7](../../tutorial-client/Tutorial7.html)
## 强大的WEB配置平台控制 ##
在WEB配置平台上,您可以
- 上传、更新 您的配置文件、配置项(有邮件通知),并且实现动态推送。
- 批量下载配置文件,查看ZK上部署情况
- 查看 此配置的影响范围: 哪些机器在使用,各机器上的配置内容各是什么,并且自动校验 一致性。
- 支持 自动化校验配置一致性。
- 简单权限控制
详见:[Tutorial6](../../tutorial-web/Tutorial6.html)
![](http://ww3.sinaimg.cn/mw1024/60c9620fgw1ekdeid28pmj20rc0fkdj9.jpg)