配置管理
-
分布式环境中,配置文件同步非常常见
- 一般要求一个集群中。所有节点的配置信息是一致的,比如redis地址
- 我们对配置文件进行修改后,希望能够第一时间同步到各个节点上
-
配置管理可交给Zookeeper实现
- 可将配置信息写入ZK上的一个Znode上
- 各个客户端服务监听这个Znode
- 一旦Znode中的数据被修改,ZK服务端将通知各个客户端服务器。
其他:携程出了一个专门做配置管理的框架,功能更强大。地址:https://github.com/apolloconfig/apollo
生成分布式ID
在分布式环境中,分布式ID是必要的,一本分布式ID需满足以下要求
- 全局唯一:必须保证ID是全局性唯一的,基本要求
- 高性能:高可用低延时,ID生成响应要块,否则反倒会成为业务瓶颈
- 好接入:要秉着拿来即用的设计原则,在系统设计和实现上要尽可能的简单
- 趋势递增:最好趋势递增,这个要求就得看具体业务场景了,一般不严格要求
代码如下
public long nextId(String path){
try {
Stat stat = client.setData().forPath(path, new byte[0]);
int version = stat.getVersion();
return version;
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}