2016-09-24 1 views
0

gRPCを使用して、2つのリモートホスト間のすべてのコールがgRPCの外部で確立されたTCP接続を使用するようにできますか。また、 が、このTCP接続が 1つのgRPCコールに対して多重化できるか、どちらの方向にもコールがあり、gRPC がソケットを閉じないかどうかを判断したいと思います。単一の事前設定されたTCP接続を介した複数の双方向gRPC呼び出し

gRPCの両端がファイアウォールの にある場合、gRPCを使用できるようにすることが目的です。ファイアウォールは、ファイアウォール内から開始される単一のTCP接続 の確立のみを許可します。

要件については、C++とJavaの実装がどちら側にあってもかまいません。

答えて

1

多分。主な問題はおそらくgRPCにソケットを閉じることを望まないということでしょう。あなたがgRPCにソケットを解放してもらいたいかどうかは不明です。また、サーバー側でもクライアント側でも必要かどうかは不明です。

gRPCは、単一のTCP接続で複数の双方向コールを自然に多重化できるHTTP/2を使用します。 C++ではprovide it an existing fdも可能です。 Javaはfdをそのまま使用することはできませんが、JNI Netty EpollSocketChannelを使用することは可能です。私はそれだけでクライアント側で作業することを期待しています。

これは機能要求としてa GitHub issueに値するものです。

+0

最も望ましいケースは、gRPCがAPI呼び出しを呼び出すときにgRPCがユーザーにソケットを解放する場合です。そして、この機能をサーバ側とクライアント側のそれぞれに持たせることが望ましいでしょう。 Java側では、ソケットである必要はありませんが、fdを表す同等の抽象概念であれば何でも構いません。私は、機能リクエストのためにGithubの問題を作成します。 – Cap

+0

Githubリクエストを開きました。問題の洞察を提供する[回答](https://github.com/grpc/grpc/issues/8217#issuecomment-249956071)があります。 – Cap

関連する問題