一个持久配置管理中心,核心功能是使应用在运行中感知配置数据的变化。
- https://github.com/daniellitoc/Diamond-Research/tree/master/diamond-utils
- https://github.com/daniellitoc/Diamond-Research/tree/master/diamond-client
- https://github.com/daniellitoc/Diamond-Research/tree/master/diamond-server
create database diamond;
grant all on diamond.* to root@'%' identified by 'root';
use diamond;
create table config_info (
'id' bigint(64) unsigned NOT NULL auto_increment,
'data_id' varchar(255) NOT NULL default ' ',
'group_id' varchar(128) NOT NULL default ' ',
'content' longtext NOT NULL,
'md5' varchar(32) NOT NULL default ' ',
'gmt_create' datetime NOT NULL default '2010-05-05 00:00:00',
'gmt_modified' datetime NOT NULL default '2010-05-05 00:00:00',
PRIMARY KEY ('id'),
UNIQUE KEY 'uk_config_datagroup' ('data_id','group_id')
);
- 配置/src/resources/jdbc.properties
- 配置/src/resources/node.properties
- 执行mvn clean package -Dmaven.test.skip
- 添加domains文件到webapps,内容为node.properties
- 配置Constants.DAILY_DOMAINNAME为被ip
- 配置Constants.DEFAULT_DOMAINNAME为主ip
- 配置Constants.DEFAULT_PORT端口
DiamondManager manager = new DefaultDiamondManager(group, dataId, new ManagerListener() {
public Executor getExecutor() {
return null;
}
public void receiveConfigInfo(String configInfo) {
}
});
manager.getAvailableConfigureInfomation(timeout);
manager.close();
- 服务端本地文件和数据库两种存储
- 客户端内部failover
- 客户端快照
- MD5校验变化
- 容灾目录
- 数据库不可用
- 所有server均不可用
- client主动删除了snapshot
- client没有备份配置数据,导致其不能配置“容灾目录”