2017-10-10 184 views
0

因此,gRPC api在我看來好像在一個應用程序中擁有多個服務的預期方式是在io.grpc.Server實例上構建並添加儘可能多的根據需要提供服務。gRPC(Java):服務器與多服務器服務器的多個實例

是否有任何理由(關於健壯性/性能/可用性/錯誤恢復能力)知道爲什麼人們希望使用多個io.grpc.Server實例來託管不同的服務?

我特別想對基準測試感興趣,但也希望鏈接到文檔和或有關該主題的討論。

回答

1

通常,所有服務都是單個io.grpc.Server的一部分。

多個io.grpc.Servers根據訪問權限分開服務可能是最有用的。例如,如果您需要額外的「特殊」開放端口,例如允許管理員訪問額外的防火牆規則或僅限本地主機。或者如果你想要多個Unix域套接字,每個都有自己的用戶/組訪問權限。

但它也可以簡單地使用,如果你想多次聽。例如,如果您想要在普通IP端口上偵聽,而且在Unix域套接字上偵聽,也是有用的。

1

從客戶端角度來看,連接多個服務器意味着創建多個通道,而通道是昂貴的資源。如果相關的服務可以在一個服務器中,那麼客戶端只需要創建一個通道來調用所有的服務。