服务化现在已经是个很成熟的概念了,最近在做个项目,其实就用到了一个服务地址的暴露和订阅,简单跟大家探讨探讨
com.101tec
zkclient
0.7
服务端创建目录并注册数据
zk.create(path, data, aclList,
persistent == true ? CreateMode.PERSISTENT : CreateMode.EPHEMERAL);aclList带有权限控制信息
客户端只需要对相应的目录进行监控即可,一旦发生变化,zk会通知道客户端,获取最新的数据
zk.subscribeChildChanges(path, new IZkChildListener() {
@Override
public void handleChildChange(String parentPath, List currentChilds)
throws Exception {订阅子目录的变化
zk.subscribeDataChanges(path, new IZkDataListener() {
@Override
public void handleDataDeleted(String dataPath) throws Exception {
}
@Override
public void handleDataChange(String dataPath, Object data) throws Exception {订阅目录下数据的变化
服务注册:
服务端将自身服务地址注册到A目录下
服务发现:
客户端监听A目录变化,拿到最新的服务地址信息