2009-12-03 9 views

答えて

9

私の意見では、フェイルオーバー・ブローカーを使用したいが、ファイル・システムを使用できなかった場合は、JDBC永続性を使用すると思います。 JDBC永続性は、ファイルシステムへのジャーナリングよりも大幅に低速でした(テスト中)。単一のブローカーの場合、ジャーナルファイルシステムが最適です。

アクティブ/パッシブ・フェイルオーバーで2つのブローカを実行している場合、2つのブローカは同じジャーナル/データ・ストアにアクセスできる必要があるため、パッシブ・ブローカはプライマリ・フェイルが検出され、ジャーナルファイルシステムを使用している場合は、ファイルはNFS、WinShare、iSCSIなどを使用して、ある種の共有ネットワークドライブ上になければなりません。通常、ファイル共有を削除するには、ハイエンドNASデバイスが必要です。単一の障害点です。

もう1つの方法として、両方のブローカーをデータベースに向けることができます。これはほとんどのアプリケーションがすでにアクセス権を持っています。ジャーナリングされたJDBCの永続性はテストでは遅いため、通常はパフォーマンスの代償としてトレードオフが簡単です。

ActiveMQは、アクティブ/パッシブブローカのペアで、NFSマウントを介してジャーナルされた永続性を持ち、専用のNASデバイスに接続されています。私たちは問題なくシステムで600 msgs/sec以上を処理することができます。

+0

Yeap、これはまさに私の経験でした。 テストでは、JDBCの永続性は、ジャーナルオプションよりも何倍も遅かったです。 ありがとう –

2

ジャーナリングされたJDBCの使用は、ジャーナリングがJDBCの永続性よりもずっと速いので、JDBCの永続性を使用するよりも優れているようです。これは、単にジャーナリングされた永続性よりも優れています。つまり、db内のメッセージの追加バックアップがあります。ジャーナリングされたJDBCには、ジャーナルの同じデータが後でdbに保存され、必要に応じて開発者がアクセスできるという追加の利点があります!

ただし、ジャーナリングされたJDBCでマスタ/スレーブActiveMQトポロジを使用している場合、ジャーナルにまだDBに入っていないメッセージがある可能性があるため、メッセージが失われる可能性があります。

1

再配信プラグインポリシーが適所にあり、マスタ/スレーブ設定を使用している場合は、スケジューラが再配信に使用されます。

現時点では、スケジューラはJDBC上ではなくファイルデータベース上でのみ設定できます。注意を払わないと、再配信中のすべてのメッセージがHAシナリオの外に出て、ブローカにローカルに転送されます。

https://issues.apache.org/jira/browse/AMQ-5238は、スケジューラdbのJDBC永続性アダプタを要求するApacheの問題追跡ツールの問題です。それを実現させるために投票することができます。

実際、トップレベルのAMQ HAソリューションであるLevelDB + ZooKeeperであっても、スケジューラはゲームから取り除かれ、問題を作成するために文書化されます(ページの最後にhttp://activemq.apache.org/replicated-leveldb-store.html)。

JDBCシナリオでは、安全でないと判断され、サポートされていないと見なされますが、少なくとも明確に文書化されていない場合、再配信ポリシーのデータストアを設定する方法。

関連する問題