第15章 パフォーマンスのヒント
15.1. Apache Qpid プログラミングによるパフォーマンス リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
- レシーバーのメッセージを事前フェッチすることを検討してください。これにより、ラウンドトリップがなくなり、スループットが向上します。prefetch はデフォルトで無効になっており、受信したメッセージのスループットを改善する最も効果的な方法です。
- メッセージを非同期に送信します。ここでも、これによりラウンドトリップが解消され、スループットが向上します。C++ および .NET クライアントはデフォルトで非同期的に送信しますが、python クライアントはデフォルトで同期送信を行います。
- バッチで確認応答します。メッセージごとに個別に承認するのではなく、メッセージや特定の期間が経過した後に確認応答を発行することを検討してください。
- 送信側の容量を調整します。容量が低い場合、送信側はより多くの容量を解放する前に、ブローカーがメッセージの受信を確認するためにブロックされる可能性があります。
- c++ クライアントが送信するメッセージに応答アドレスを設定する場合は、アドレスタイプが必要に応じて queue または topic に設定されていることを確認します。これにより、AMQP 0-10 で応答の処理時に必要となるノードの種類をクライアントが判断する必要がなくなりました。
- レイテンシーに敏感なアプリケーションの場合、クライアント接続の
tcp-nodelay
オン qpidd および on を設定すると、レイテンシーを短縮できます。