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 でサポートされる構成」を参照してください。