2.2. メッセージの永続性
AMQ Broker はメッセージデータを永続化し、予期せずブローカーに障害が発生したりシャットダウンしたりしても、メッセージが失われないようにします。メッセージの永続性に関して、AMQ Broker では、ジャーナルベースの永続性とデータベースの永続性の 2 つのオプションが提供されます。
ジャーナルベースの永続性
デフォルトの手法であるこのオプションでは、ファイルシステムに保存されるメッセージジャーナルファイルにメッセージデータを書き込みます。最初に、これらのジャーナルファイルは、固定サイズで自動的に作成され、空のデータが入力されます。クライアントがさまざまなブローカー操作を実行すると、レコードがジャーナルに追加されます。ジャーナルファイルの 1 つが満杯になると、ブローカーは次のジャーナルファイルに移動します。
ジャーナルベースの永続性は、ローカルトランザクションと XA トランザクションの両方を含むトランザクション操作をサポートします。
ジャーナルベースの永続化には、ファイルシステムへの IO インターフェイスが必要です。AMQ Broker は以下をサポートします。
- Linux 非同期 IO (AIO)
- 通常、AIO は最高のパフォーマンスを提供します。ネットワークファイルシステムが Red Hat AMQ 7 のサポートされる設定 にサポート対象としてリストされていることを確認します。
- Java NIO
- Java NIO により優れたパフォーマンスを実現できます。また、Java 6 以降のランタイムの任意のプラットフォーム上で稼働します。
データベースの永続性
このオプションは、Java Database Connectivity (JDBC) を使用して、メッセージとバインディングデータをデータベースに保存します。このオプションは、お使いの環境に信頼性が高く、高パフォーマンスのデータベースプラットフォームがある場合や、会社ポリシーでデータベースを使用することが義務付けられている場合に適しています。
ブローカー JDBC 永続ストアは標準の JDBC ドライバーを使用して、メッセージおよびバインディングデータをデータベーステーブルに保存する JDBC コネクションを作成します。データベーステーブルのデータは、ジャーナルベースの永続化と同じエンコーディングを使用してエンコードされます。つまり、SQL を使用して直接アクセスしても、データベースに保存されているメッセージは人間が判読できません。
データベースの永続性を使用するには、サポートされるデータベースプラットフォームを使用する必要があります。現在サポートされているデータベースプラットフォームを確認するには、Red Hat AMQ 7 でサポートされる構成 を参照してください。