HMasterInterface:client和Master之間的RPC介面HRegionInterface: client和RegionServer之間的RPC介面HMasterRegionInterface: regionServer和Master之間的RPC介面以上三個類是用戶端獲得的服務端邏輯實現的代理類stubHConnection: zookeeper 叢集(HBase)的串連,可以通過掃描META表對region進行定位(緩衝),擷取到Server的stub,擷取表schema,表狀態等資訊HConnectionImplementation:HConnection的實作類別。HConnectionManager:HConnection的建立管理類,一般一個用戶端共用一個HConnectionorg.apache.hadoop.hbase.client.HConnectionManager. HConnectionManager 的兩個方法getMaster()和getHRegionConnection() 來獲得stub,在這兩個方法中是通過調用HBaseRPC類來獲得的(其中會先從緩衝中擷取)。 server = (HRegionInterface) HBaseRPC.waitForProxy( serverInterfaceClass, HRegionInterface.VERSION, address, this.conf, this.maxRPCAttempts, this.rpcTimeout, this.rpcTimeout); HBaseRPC:RPC的操作類RPCEngine:RPC 引擎HBaseClient:串連操作的用戶端類,預設情況下,一個用戶端到一個server只有一個串連 Client到Server端的串連是長串連,在用戶端封裝有call對象(Invocation),Call對象執行個體被放入了另一個內部類Connection的一個表calls中,是id到Call執行個體的映射;用戶端發送資料後,等待返回結果的通知;有一個線程不斷地從服務端接收返回的結果,返回的結果中包含id,這樣就可以通知對應的阻塞的用戶端線程,用戶端線程繼續運行,獲得結果。
未完,待完善和補充。。。。。