JettyのHTTP2は、ほとんどがConnector、Transport、Channelレベルであることを理解しています。JettyにHTTP2サーブレットを実装する最良の方法は何ですか?
私は、クライアントとサーバー間のバイナリデータを転送するために最善をされるであろう組み合わせ決定しようとしている:
- 桟橋HTTP2サーバ同期サーブレットとの非同期サーブレット+桟橋HTTP2クライアントと
- 桟橋HTTP2サーバ+桟橋HTTP2クライアント 非同期サーブレット+ネッティーHTTP2クライアントと
- 桟橋HTTP2サーバ
- GRPCクライアントとサーバ(両方ともデフォルトネッティー基づいています)
詳細:
私は私のクライアントにバイナリデータを送信したいと私は、接続が非ブロック/非同期になりたいです。同時のクライアント要求の数は高くなる可能性があり、サーバーはいくつかの要求に応答するのに数秒(時には)かかることがあります。
各応答は小さなバイナリデータのチャンクです。 byte[]
またはByteBuffer
にコピーする代わりにNettyのByteBufs
を直接応答として送信できるのであれば、私はそれを気に入っていましたが、それはこの特定の質問に直接関係していません。
メソッド#4は、ProtoBuf wrapping (link)limitation (link)のために私のお気に入りではありません。
桟橋参照:
- http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/http2/client/HTTP2Client.html
- https://github.com/eclipse/jetty.project/tree/jetty-9.4.x/jetty-http2/http2-server/src/main/java/org/eclipse/jetty/http2/server
- https://github.com/fstab/http2-examples/blob/master/multiplexing-examples/jetty-client/src/main/java/de/consol/labs/h2c/examples/client/jetty/JettyClientExample.java
- https://groups.google.com/forum/#!topic/grpc-io/z0rhhetN1rE