html tool

显示标签为“zookeeper”的博文。显示所有博文
显示标签为“zookeeper”的博文。显示所有博文

2017年11月3日星期五

转:java zookeeper client Demo


http://blog.csdn.net/gaohuanjie/article/details/37736939

package com.ghj.packageoftest;  
  
import org.apache.zookeeper.CreateMode;  
import org.apache.zookeeper.WatchedEvent;  
import org.apache.zookeeper.Watcher;  
import org.apache.zookeeper.ZooDefs.Ids;  
import org.apache.zookeeper.ZooKeeper;  
  
public class ZooKeeperClient {  
  
    public static void main(String[] args) throws Exception{  
        Watcher watcher = new Watcher(){  
            // 监控所有被触发的事件  
            public void process(WatchedEvent event) {   
                System.out.println("触发了" + event.getType() + "事件!");   
            }  
        };  
  
        ZooKeeper zooKeeper = new ZooKeeper("127.0.0.1:2181", 5000, watcher);//第一个参数:ZooKeeper服务器的连接地址,如果ZooKeeper是集群模式或伪集群模式(即ZooKeeper服务器有多个),那么每个连接地址之间使用英文逗号间隔,单个连接地址的语法格式为“主机IP:ZooKeeper服务器端口号”;  
                                                                             //第二个参数:session超时时长(单位:毫秒)  
                                                                             //第三个参数:用于监控目录节点数据变化和子目录状态变化的Watcher对象  
        zooKeeper.create("/RootNode", "RootNodeData".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);//创建一个节点名为“/RootNode”的目录节点  
        System.out.println("“/RootNode”节点状态:" + zooKeeper.exists("/RootNode",true));//判断指定目录节点是否存在  
        System.out.println("“RootNode”节点上数据:"+new String(zooKeeper.getData("/RootNode", false, null)));//获取“RootNode”节点上的数据  
        zooKeeper.create("/RootNode/ChildNode1", "ChildNode1Data".getBytes(), Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);//在“RootNode”节点下创建一个名为“ChildNode1”的子目录节点  
        zooKeeper.create("/RootNode/ChildNode2", "ChildNode2Data".getBytes(), Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);//在“RootNode”节点下创建一个和“ChildNode1”同级的名为“ChildNode2”的子目录节点  
        System.out.println("目录节点“RootNode”下的所有子目录节点有:"+zooKeeper.getChildren("/RootNode",true)); //取出目录节点“RootNode”下的所有子目录节点  
        zooKeeper.setData("/RootNode/ChildNode2","NewChildNode2Data".getBytes(),-1);//修改名为“ChildNode2”的目录节点数据  
  
        zooKeeper.delete("/RootNode/ChildNode1", -1);//删除“/RootNode/ChildNode1”目录节点  
        System.out.println("“/RootNode/ChildNode1”节点状态:" + zooKeeper.exists("/RootNode/ChildNode1", false));//判断“/RootNode/ChildNode1”目录节点是否存在  
        zooKeeper.delete("/RootNode/ChildNode2", -1);//删除“/RootNode/ChildNode2”目录节点  
        zooKeeper.delete("/RootNode", -1);//删除“/RootNode”目录节点  
        zooKeeper.close(); //关闭与ZooKeeper的连接  
    }  
}  


写的很详细的注释,不多解释了。
Mvn的依赖


    org.apache.zookeeper
    zookeeper
    3.4.10
    pom

[popexizhi:
很奇怪的问题,    pom 添加后Eclipse本地的mvn install无法下载依赖,去掉就ok了,好奇怪,这个是原文提供的意思是什么呢?
]


2015年7月13日星期一

关于dubbo监控和zookeeper设置


测试环境dubbo监控服务
监控访问地址:http://10.100.142.36:8800
user/password:root/root
安装位置:/opt/apache-tomcat-dubbo-admin
配置文件:
/webapps/ROOT/WEB-INF/dubbo.properties
配置内容:
dubbo.registry.address=zookeeper://10.100.142.36:2181    //要监控的zookeeper的地址
dubbo.admin.root.password=root
dubbo.admin.guest.password=root
--------------------------------------------------------
测试环境zookeeper
使用地址:10.100.142.36:2181
安装位置:/opt/zookeeper-3.4.6/
配置文件:
{$zookeeper_home}/conf/zoo.cfg(使用默认配置)
启动命令:
cd {$zookeeper_home}/bin/
./zkServer.sh start

安装过程:
1.下载zookeeper安装包(10.100.142.36上有备份内容/home/soft/zookeeper-3.4.6.tar_(2).gz)
2.在要安装的位置解压 命令:tar -zxvf zookeeper-3.4.6.tar_\(2\).gz
3.(如果需要可以修改配置文件)启动zookeeper 命令:./zkServer.sh start 就ok了
------------------------------------
默认配置如下:
tickTime=2000            
dataDir=/opt/zookeeper-3.4.6/data
clientPort=2181
initLimit=5
syncLimit=2

配置项目说明:
tickTime :基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir :存储内存中数据库快照的位置,顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
clientPort :这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
initLimit:这个配置项是用来配置 Zookeeper 接受客户端初始化连接时最长能忍受多少个心跳时间间隔数,当已经超过 5 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒。
syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒