微服務下rpc調用的客戶端和服務端實現原理

一個端口對應一個服務的情況(客戶端每個rpc client對應一個連接池,服務端每個服務對應一個線程池):

圖中紅色豎線代表rpc調用的客戶端stub和服務端skeleton,每個rpc服務對應一個端口。客戶端每個服務對應一個連接池,服務端每個服務對應一個線程池,用於響應客戶端的請求。通常情況下,客戶端和服務端是長連接。

 

單端口多服務場景下,默認配置的情況(客戶端每個rpc client對應一個連接池,服務端一個端口下的所有服務共用一個線程池):

單端口多服務是指rpc調用的服務端多個服務共用同一個端口,默認情況下,這些服務也會共用一個線程池。如果擔心服務端共用一個線程池會導致服務之間相互影響,可以爲不同的Service或者Method配置不同的線程池。