Dubbo RPC調(diào)用的流程如下:
服務(wù)消費者(Client)通過本地代理(Proxy)調(diào)用遠程接口(Service)的方法。
本地代理將遠程方法的調(diào)用信息封裝成一個請求對象(Request)。
請求對象通過序列化技術(shù)將數(shù)據(jù)轉(zhuǎn)換成字節(jié)流。
通過網(wǎng)絡(luò)傳輸,將請求對象發(fā)送給服務(wù)提供者(Server)。
服務(wù)提供者接收到請求對象后,將字節(jié)流反序列化成請求對象。
服務(wù)提供者根據(jù)請求對象的內(nèi)容,調(diào)用相應的服務(wù)接口實現(xiàn)類(Service Implementation)的方法。
服務(wù)提供者將方法執(zhí)行的結(jié)果封裝成一個響應對象(Response)。
響應對象通過序列化技術(shù)將數(shù)據(jù)轉(zhuǎn)換成字節(jié)流。
通過網(wǎng)絡(luò)傳輸,將響應對象發(fā)送給服務(wù)消費者。
服務(wù)消費者接收到響應對象后,將字節(jié)流反序列化成響應對象。
本地代理將響應對象中的結(jié)果返回給調(diào)用方。
整個過程中涉及到網(wǎng)絡(luò)傳輸、序列化、反序列化等技術(shù),以實現(xiàn)遠程方法的調(diào)用和結(jié)果的返回。