在HMaster、RegionServer内部,创建了RpcServer实例,并与Client三者之间实现了Rpc调用,HBase0.95内部引入了Google-Protobuf作为中间数据组织方式,并在Protobuf提供的Rpc接口之上,实现了基于服务的Rpc实现。

(1)HMaster支持的Rpc协议

MasterMonitorProtocol,Client与Master之间的通信,Master是RpcServer端,主要实现HBase集群监控的目的。

 

MasterAdminProtocol,Client与Master之间的通信,Master是RpcServer端,主要实现HBase表格的管理。例如TableSchema的更改,Table-Region的迁移、合并、下线(Offline)、上线(Online)以及负载平衡,以及Table的删除、快照等相关功能。

 

RegionServerStatusProtoco,RegionServer与Master之间的通信,Master是RpcServer端,负

责提供RegionServer向HMaster状态汇报的服务。

 

(2)RegionServer支持的Rpc协议

ClientProtocol,Client与RegionServer之间的通信,RegionServer是RpcServer端,主要实现用户的读写请求。

HBase-4.HBase内部机制_Google

(3)RpcServer配置三个队列

普通队列callQueue

优先级队列:PriorityQueue

拷贝队列:replicationQueue

 

RpcServer由三个模块组成:Listener ===Queue=== Responder

 

HBase-4.HBase内部机制_集群监控_02