2017-10-10 32 views
0

gRPC APIは、1つのアプリケーションに複数のサービスを持つ意図した方法がio.grpc.Serverインスタンス上に構築されていて、必要に応じてサービスを提供します。gRPC(Java):サーバーの複数インスタンスと複数のサービスを持つサーバー上

さまざまなサービスをホストするために複数のio.grpc.Serverインスタンスを使用する理由は何か(堅牢性/パフォーマンス/可用性/エラー耐性の点で...)

私は特にベンチマークに興味がありますが、ドキュメントへのリンクやトピックに関するディスカッションも感謝しています。

答えて

1

一般に、すべてのサービスは単一のio.grpc.Serverの一部です。

おそらく複数のio.grpc.serversは、アクセス/アクセス権に基づいてサービスを分離するのに最も役立ちます。たとえば、余分なファイアウォールルールを使用して管理アクセスを許可するような、またはローカルホストのみのような、特別なオープンポートを追加する場合などです。また、それぞれ独自のユーザ/グループアクセス権を持つ複数のUnixドメインソケットが必要な場合。

ただし、複数回聴きたい場合は、単に使用することもできます。たとえば、通常のIPポートだけでなくUNIXドメインソケットでもリスンしたい場合にも便利です。

1

クライアントの観点から見ると、複数のサーバーに接続するということは、複数のチャネルを作成することを意味し、チャネルは高価なリソースです。関連するサービスがすべて1つのサーバーにある場合、クライアントはすべてのサービスを呼び出すために1つのチャネルを作成するだけで済みます。

関連する問題