【Zookeeper】JAVA通过ZK实现服务注册和服务发现

来源:互联网 发布:mentohust mac版下载 编辑:程序博客网 时间:2024/06/05 10:29

服务化现在已经是个很成熟的概念了,最近在做个项目,其实就用到了一个服务地址的暴露和订阅,简单跟大家探讨探讨

<dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.7</version></dependency>

服务端创建目录并注册数据

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<String> 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目录变化,拿到最新的服务地址信息


0 0
原创粉丝点击