zookeeper搭建以及Java连接zookeeper测试
来源:互联网 发布:java 就业班 编辑:程序博客网 时间:2024/05/16 10:20
一、zookeeper搭建
1、下载zookeeper
http://www.apache.org/dist/zookeeper/
2、在Linux下面解压
3、配置zoo.cfg文件
在conf目录下复制zoo_sample.cfg文件。然后配置zoo.cfg
4、至此单机模式已经配置好了。
启动:会查找zoo.cfg文件
bin/zkServer.sh stop 停止服务,restart重启服务。
测试链接
5、配置集群
client-port:供客户端连接服务的端口
server.x=ip:端口1:端口2
x:表示每个server的myid文件中的值。
ip:每台服务器ip,如果是本地服务,对应ip可以配置为127.0.0.1。
端口1:是该服务器和集群中的Leader交换信息所用的端口
端口2:集群服务器选举Leader时所用
分别设置dataDir=/home/zookeeper/data
dataDir=/etc/zookeeper/data
在这两个目录下分别见myid文件,内容分别为1,2
启动:bin/zkServer.sh start | stop | restart
测试:
在第一台服务器上创建的节点,能连第二台服务器进行访问,则集群搭建成功。
多台电脑可通过虚拟机实现。
二、Java连接zookeeper测试
package lc.java.zookeeper;
import java.io.IOException;
import java.util.List;
import org.apache.zookeeper.AsyncCallback.StringCallback;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.EventType;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
/**
*
* @author liuchong
*
*/
public class MyApp2 {
public static void main(String[] args) {
String connectString = "192.168.127.220:2181";
int sessionTimeout = 500000; // 会话时间。设置长一点,如果不够长,则会connect loss
try {
// 建立zookeeper链接
ZooKeeper zk = new ZooKeeper(connectString, sessionTimeout, new Watcher(){
public void process(WatchedEvent event) {
// 监控所有触发的事件
System.out.println("start do something");
EventType type = event.getType(); // 事件类型。枚举
KeeperState state = event.getState(); // 状态。 枚举
// type.getIntValue();
switch (type) {
case None: // int值对应 -1
System.out.println("none 事件触发");
break;
case NodeCreated: // int值对应 1
System.out.println("创建节点事件发生了");
break;
case NodeDeleted: // int值对应 2
System.out.println("删除节点事件发生了");
break;
case NodeDataChanged: // int值对应 3
System.out.println("节点数据改变事件发生了");
break;
case NodeChildrenChanged: // int值对应 4
System.out.println("子节点改变事件发生了");
break;
default:
System.out.println("I do not know what operate you do");
break;
}
// state.getIntValue(); NoSyncConnected 1和Unknown-1
switch (state) {
case Disconnected: // 0
System.out.println("失去连接");
break;
case SyncConnected: // 3
System.out.println("异步链接");
break;
case Expired: // -112
System.out.println("超时过期");
break;
default:
break;
}
System.out.println("end");
}
});
List<String> list = zk.getChildren("/", true); // 获取所有节点
if(list != null) {
for(String s : list)
System.out.println(s);
}
// 在/app5节点下创建child节点
zk.create("/app5/child", "/app5的子节点数据".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); // 会对数据持久化,服务下次启动任然存在
zk.create("/app6/child", "/app6的子节点数据".getBytes(), Ids.OPEN_ACL_UNSAFE,
CreateMode.PERSISTENT, new StringCallback(){
@Override
public void processResult(int rc, String path, Object ctx, String name) {
System.out.println("rc: " + rc);
System.out.println("path: " + path);
System.out.println("Object:" + ctx);
System.out.println("name: " + name);
}
}, "ctx object");
} catch (IOException e) {
e.printStackTrace();
} catch (KeeperException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}运行结果:
如果节点存在了,再创建一样的节点,则会报错。
0 0
- zookeeper搭建以及Java连接zookeeper测试
- java客户端测试连接zookeeper服务器
- java 连接 zookeeper
- java连接zookeeper集群
- Zookeeper安装以及集群搭建
- zookeeper以及集群的搭建
- docker搭建duboo连接zookeeper
- 测试zookeeper服务报"java.net.ConnectException: 拒绝连接..错误
- Linux下安装zookeeper以及Zookeeper的集群搭建
- ZooKeeper 搭建
- zookeeper搭建
- Zookeeper搭建
- 搭建Zookeeper
- zookeeper搭建
- zookeeper搭建
- zookeeper搭建
- Zookeeper搭建
- 搭建zookeeper
- SVN冲突解决
- swift学习之路(二)整型
- C# MATLAB混编(二)
- 优化安卓应用内存的神秘方法以及背后的原理,一般人我不告诉他
- Hibernate的Annotation注解
- zookeeper搭建以及Java连接zookeeper测试
- Java中关于OOM的场景及解决方法
- 底层解惑-spring的IOC相关接口:BeanFactory与FactoryBean
- python中四舍五入及向上向下取整处理
- iOS调用系统日历
- 一个简单嵌入式WEB业务应用设计
- 视图弹出后放大又缩小的动画实现、类似于alertView效果
- Lua 性能优化
- iOS中-Block使用