[搜狐博客搬家] 2012-06-05 zookeeper的java客户端学习笔记(一)

原创
2021/09/30 16:57
阅读数 50

最近研究了一下,zookeeper java版本的客户端,所以做了一下相应的记录,这些主要是记录zookeeper与客户端传输数据的协议的

1.建立连接发送请求消息格式

类型:int,int,long,int,long,byte,byte[16] 

含义: 

bodysize(消息体长度),protocolVersion(协议版本,默认为0),lastZxidSeen(上次连接zxid,默认为0), 

timeOut(连接超时时间单位为ms),sessionId(默认为0),密码长度,passwd密码,默认为16个字节 

比如你可以发送如下指令 

byte[] connectionRequest = new byte[]{0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 

 

2.建立连接之后的响应数据: 

0, 0, 0, 0, 0, 0, 117, 48, 9, 55, -97, 8,   -97, -95, -114, -24, 0, 0, 0, 16, -3,  -58,  -53, -1, 28, -117, -114, -39, 87,  13, 14,  -9,   -19, -25, -111, 96
int:protocolVersion,int:timeOut,long:sessionId,int:len,string:(size of len)

 

3.发送获取数据消息体:

0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 7, 47, 116, 97, 108, 101, 110, 116, 0
int:msglen,int:xid,int:handleType,int:strlen,str:/talnet,bool:ifwatch
 

4.建立连接之后返回消息体格式 

0, 0, 0, 98, 0, 0, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 10, 34, 116, 101, 115, 116, 112, 97, 116, 104, 34, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 1, 48, 49, 85, -125, -29, 0, 0, 1, 48, 49, 85, -125, -29, 0, 0, 0, 0, 0, 0, 21, 50
int:msglen,int:xid,long:zxid,int:err,int:strlen,str:"testpath",obj:stat

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部