grpc-nodejs サーバーで圧縮を有効にする方法はありますか?
圧縮されたデータを圧縮/解凍できますが、応答を返すときに圧縮できないため、実装することは可能のようです。
テスト用の nodejs サーバーを起動し、python クライアントを使用して対話しました。転送されたバイト数を取得するためにサーバーとクライアントの間の対話を MITM で編集し、nc
圧縮の効果を確認しました。
Python クライアント経由でリクエストを行いながらメタデータを送信'grpc.default_compression_algorithm'
したところ、クライアントから送信されたデータは圧縮されていましたが、サーバーから返されたデータは圧縮されていませんでした。( sent 815, rcvd 300324
echo grpc サービスの場合)。
nodejs サーバー側でメタデータを設定しても役に立ちません。圧縮されていないデータが送信されます。
これが可能なはずだと思う理由は、圧縮されたリクエストを読み取ることができたからです。また、npm grpc パッケージは grpc バイナリのラッパーです。nm grpc_node.node | grep gzip
返品の実行
0000000000306800 d grpc_stream_compression_gzip_vtable
00000000000b2fd0 t _ZL10gzip_flateP36grpc_stream_compression_context_gzipP17grpc_slice_bufferS2_PmmiPb
00000000000b3670 t _ZL25grpc_stream_compress_gzipP31grpc_stream_compression_contextP17grpc_slice_bufferS2_Pmm29grpc_stream_compression_flush
00000000000b3600 t _ZL27grpc_stream_decompress_gzipP31grpc_stream_compression_contextP17grpc_slice_bufferS2_PmmPb
00000000000b2ed0 t _ZL43grpc_stream_compression_context_create_gzip30grpc_stream_compression_method
00000000000b2e70 t _ZL44grpc_stream_compression_context_destroy_gzipP31grpc_stream_compression_context