1

大量のメッセージをまとめて保存することは可能ですか?私はそれらを同期して永続的に送信したいのですが、一度に非常に速度を上げるためです。

私は、javaフレームワークの.netバージョンであるNMSを使用しています。しかし、Javaでこれを行う方法しか知らない場合は、それも役立ちます。たぶん私は.netの解決策をもっと簡単に見つけることができます。

取引のようなものを考えました。しかし、私は、生産者ではなく、消費者のために機能するトランザクションしか得られませんでした。

4

1 に答える 1

2

一括送信時に最大のスループットが必要な場合は、SESSION_TRANSACTED確認応答モードを使用し、すべてのメッセージ送信を.commit()と一緒にバッチ処理する必要があるという従来の知識があります。

残念ながら、これが当てはまらないことを示すベンチマークがありますhttp://www.jakubkorab.net/2011/09/batching-jms-messages-for-performance-not-so-fast.htmlトランザクションなしで通常どおりに送信します。すでにトランザクションを使用している場合は、それらをバッチ処理してみるのが理にかなっている場合があります。

ここでの私のアドバイスは、非常に時間に敏感なメッセージを扱っていない限り、生成する速度はそれほど大きな問題にはならないということです。メッセージ送信の速度ではなく、帯域幅にもっと注意を払う必要があります。 。メッセージの順序が狂っていてもかまわない場合は、複数のプロデューサーにこれらのメッセージを特定の宛先に生成させることができます...または、複数のプロデューサーを使用し、ブローカーに入った後にリシーケンサーを使用するためにメッセージが必要な場合。

于 2011-09-25T12:44:20.693 に答える