HBase的RPC源码分析

本文深入剖析HBase的RPC源码,从客户端和服务端角度分析请求构建与处理流程,涉及ClientService.BlockingInterface、netty的Future/Promise模型及连接建立等关键点。
摘要由CSDN通过智能技术生成

RPC服务是指跨网络的服务调用,客户端发出服务请求,经过网络传输到服务端。服务端解析该请求,调用本地方法获取结果,然后将结果作为响应包通过网络发送回客户端,这样客户端在调用远程方法时就会像调用本地方法一样简单。

RPC调用时有两个问题需要解决,其一是client端与server端采用何种方式通信,其二是请求信息和结果以何种格式在网络上传输,也就是RPC通信协议和RPC通信框架。通信协议需要client端和server端约定好请求参数的类型、参数顺序以及相应结果的类型等等,通信框架则定义了两端通信的方式,可选的包括TCP/UDP通信,HTTP等。除此之外,RPC框架还需要解决server端服务调用超时、client端的重试、服务端限流和server端的调度等问题。

HBase中的master/regionserver/client等组件在RPC中的关系如下图中所示:


其中,client与master之间的通信主要是hbase的DML操作,包括table schema的更改,table region的迁移合并、region server的上线和下线以及集群负载均衡、Table的快照管理等功能;client与regionserver之间的通信用于实现数据读写请求,如get、multiGet、mutate、scan、bulkLoadHfile、执行coprocessor等;master与region server之间的通信用于region server向master汇报自身的状态,包括自身管理的region和自身的当前状态等等。

下面分别从客户端和服务端的角度分析hbase中rpc调用的实现。在客户端中,hbase的rpc服务可以拆分为两个主要流程,分别是请求构建和请求处理。下面我们以hbase的get请求为例,以求清晰解释客户端的rpc流程。首先讲解请求是如何构建的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值