2016-09-13 1 views
0

多くの読者が、同期呼び出しにAQMP-RPCを使用しないことを推奨しています。私の応答データのサイズは4MBなので、REST-HTTPはサーバーからクライアントにデータを送信するのに時間がかかりすぎます。そこで、私たちはRPCを動かすことにしました。同期呼び出しのためにREST-HTTPからRabbitmq-RPCに移行する必要がありますか?

より大きいデータを送信するために、REST-HTTPからAQMP-RPCまたはApache Avro、Thrift、Google Protocol Bufferなどの他のRPCメソッドに移行する必要がある人はお助けください。

+1

"* too much time"とは何ですか?どちらの方法でも、この制限はツールではなくネットワークである可能性が非常に高いです。既にデータを圧縮していない場合は、データを圧縮することを検討してください。 – JensG

+0

@ JensGButはい、私は試しましたが、圧縮と解凍は性能を低下させました。 – VikashG

答えて

1

Cap'n Protoよりも悪いことがあります。これは、アプリケーションコードで問題なく動作させると同時に、その必要性を取り除くことに努めていることから、興味深いものです。それは、Googleプロトコルバッファv2をやった人の一人によって書かれたものです。彼らはRPCでも卑劣なことをやっているので、1回のRPC呼び出しの結果が単なる後続のRPC呼び出しへの入力であれば時間を節約できます。

GPBでもあまりにも悪くはありません(ASN.1など)。バイナリワイヤフォーマットを持つもの(Cap'n Protoとは別のもの)はおそらくほぼ同じになるでしょう - ビットとバイトをマーシャルする必要があります地元の表現から。 Avroには、独自のスキーマが含まれています(送信されているメッセージよりも大きければ、残念です)。

バイナリはおそらくテキスト(JSON、XMLなど)より優れています。

関連する問題