《从Paxos到ZooKeeper》第七章总结二:ZooKeeper技术内幕之序列化与协议

2 序列化与协议

ZooKeeper使用了Jute序列化组件来进行序列化/反序列化操作

2.1 Jute

使用Jute进行序列化/反序列化操作的步骤:
在这里插入图片描述

2.2 通信协议

基于TCP/IP实现了自己的通信协议来完成客户端与服务端、服务端与服务端之间的网络通信

请求和响应的结构体:
在这里插入图片描述

2.2.1 协议解析:请求部分

”获取节点数据“请求为例的完整协议定义:
在这里插入图片描述

2.2.1.1 请求头:RequestHeader

包含了请求最基本的信息:xid、type
在这里插入图片描述

2.2.1.2 请求体:Request

请求的主体内容部分,包含了请求的所有操作内容

三种常见的典型请求体定义:会话创建、获取节点数据、更新节点数据

  • ConnectRequest:会话创建
    在这里插入图片描述
  • GetDataRequest:获取节点数据
    在这里插入图片描述
  • SetDataRequest:更新节点数据
    在这里插入图片描述
    以“获取节点数据”为例进一步了解请求协议:
    在这里插入图片描述
2.2.2 协议解析:响应部分

”获取节点数据“响应为例的完整协议定义:
在这里插入图片描述

2.2.2.1 响应头:ReplyHeader

包含了每一个响应最基本的信息,包括xid、zxid、err
在这里插入图片描述

2.2.2.2 响应体:Response

指响应的主体内容部分,包含了响应的所有返回数据

三种常见的典型响应体定义:会话创建、获取节点数据、更新节点数据

  • ConnectResponse:会话创建
    在这里插入图片描述
  • GetDataRequest:获取节点数据
    在这里插入图片描述
  • SetDataRequest:更新节点数据
    在这里插入图片描述
    以“获取节点数据”为例进一步了解响应协议:
    在这里插入图片描述
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值