ホームページ > バックエンド開発 > Golang > 単一の接続で複数の gRPC サービスにアクセスするにはどうすればよいですか?

単一の接続で複数の gRPC サービスにアクセスするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-03 19:28:29
オリジナル
933 人が閲覧しました

How to Access Multiple gRPC Services Over a Single Connection?

単一接続で複数の gRPC サービスにアクセスする

gRPC サービスごとに異なるソケットをダイヤルする理由

同じ上で実行されている gRPC サービスにアクセスする場合サーバーを使用する場合、サービスごとに個別の接続を確立する必要はありません。単一の grpc.ClientConn を使用してすべてのサービスにアクセスできます。

接続を共有する方法

接続を共有するには、目的のエンドポイントを使用して grpc.ClientConn を作成し、それを使用したいサービスごとに pb.New*Client() 関数を実行します。これにより、同じ接続を利用できるようになります。

<code class="go">cc, err := grpc.Dial("localhost:6000", grpc.WithInsecure())
if err != nil {
    log.Fatal(err)
}
c1 := pb.NewSubscriberServiceClient(cc)
c2 := pb.NewDropperServiceClient(cc)</code>
ログイン後にコピー

インターフェイスを使用してクライアント実装を組み合わせる?

複数のサービスのクライアント側 gRPC 機能を組み合わせるインターフェイスを作成できますが、 pb.go で生成されたコードは、すべての重要な操作を処理します。新しい機能の実装は、特定のカスタム ロジックにのみ必要です。

一意のメソッド名を持つサービスの場合は、クライアントをバンドルするための便利な構造体を定義できます。

<code class="go">type SubscriberDropper struct {
    pb.SubscriberServiceClient
    pb.DropperServiceClient
}</code>
ログイン後にコピー

ネットワーク経由で複数の gRPC サービスにアクセスする単一接続により、クライアント側の実装が簡素化され、コードの保守性が向上します。

以上が単一の接続で複数の gRPC サービスにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート