すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RocketMQ:メッセージの保存とクリーンアップ

最終更新日:Jul 09, 2024

このトピックでは、ApsaraMQ for RocketMQが、ストレージの粒度、判断基準、処理ポリシーなどのメッセージを保存する方法について説明します。

背景情報

ApsaraMQ for RocketMQキューの定義に基づいて、メッセージはブローカーが受信した順序でキューに格納されます。 理論的には、キューが保存できるメッセージの数は無制限です。

実際の展開シナリオでは、ブローカーの物理ストレージスペースが限られているため、メッセージを永続的に格納することはできません。 したがって、メッセージをデプロイするときは、3つの質問に答える必要があります。ブローカーにメッセージを保存する方法を決定するために使用される基準は何ですか? 格納されたメッセージの管理に使用される粒度は? メッセージストレージの使用量が制限を超えた場合、どのような対策が必要ですか? ApsaraMQ forRocketMQのメッセージストレージとクリーンアップメカニズムは、上記の質問に対する回答を提供します。

次の側面に基づいて、メッセージストレージとクリーンアップメカニズムを使用することで、O&Mをより適切に実行できます。
  • ストレージのSLA: ストレージ期間は、ユーザーがメッセージを取得できる期間を指します。 この機能は、長い消費期間が必要であり、メッセージが蓄積され、障害回復が必要なシナリオに適しています。
  • ストレージコストの評価と管理: ApsaraMQ for RocketMQはメッセージをディスクに保存します。 事前にストレージ容量を評価し、ストレージリソースを予約できます。

メッセージ保存メカニズム

働くメカニズム

ApsaraMQ for RocketMQの各ノードは、特定の期間のメッセージを保存します。 記憶期間として知られるこの期間は、メッセージがどのくらい長く記憶されるかを決定するために使用される。 ストレージ期間内のメッセージは保持されますが、期間制限を超えるメッセージは、消費されたかどうかに関係なくクリーンアップされます。

次のセクションでは、メッセージの格納メカニズムに関連する項目について説明します。

  • 管理の粒度: ApsaraMQ for RocketMQは、ノードに基づいてメッセージの保存期間を管理します。
  • 判定基準: メッセージの保存期間を判定基準とする。 メッセージの量やサイズと比較して、保存期間は、メッセージの値をより効率的に評価するのに役立ちます。
  • メッセージストレージが消費ステータスに関連するかどうか: ApsaraMQ for RocketMQのメッセージストレージ期間は、メッセージが生成された時点から開始され、消費ステータスには関連しません。 統合された計算方法を使用することで、メッセージの保存メカニズムを簡素化できます。
次の図は、メッセージがキューに格納される方法を示しています。Message storage

管理の粒度

ApsaraMQ for RocketMQは、以下の理由により、ブローカーノードに基づいてストレージ期間を管理します。
  • メッセージストレージの利点: ApsaraMQ for RocketMQは、物理ログキューと軽量論理キューで構成される統合された2レベルの編成方法を使用して物理データを管理します。 この方法は、順序付けられた読み取りおよび書き込み操作、高スループット、および高性能の利点を提供する。 ただし、この方法を使用してトピックまたはキューに基づいてメッセージストレージを管理することはできません。
  • 容量保証とデータセキュリティ: ApsaraMQ for RocketMQはトピックまたはキューに基づいて独立したストレージファイルを生成しますが、ファイルは同じ基盤となるストレージメディアを共有します。 トピックまたはキューに基づいて、ストレージ期間を柔軟に管理できます。 クラスタのストレージ容量が不足すると、ストレージのSLAが満たされないことがあります。 安全な方法でメッセージを管理する場合は、異なるクラスターで異なる保存期間を使用してメッセージを保存するのが最善の方法です。

メッセージストレージと消費ステータスの関係

ApsaraMQ for RocketMQは、メッセージが消費されるかどうかに関係なく、メッセージの保存期間を一元管理します。

非アクティブなコンシューマまたは異常な消費により、メッセージがキューに蓄積される場合があります。 当面の間、この問題に対する効果的な解決策はない。 消費されていないすべてのメッセージが保持されると、ストレージスペースはすぐに使い果たされます。 これは、新しいメッセージの読み取りおよび書き込み操作の速度に影響します。

消費者は、ストレージ期間に基づいてメッセージを管理し、各メッセージのライフサイクルを決定できます。 コンシューマーは、ストレージ期間中にいつでもメッセージを消費したり、コンシューマーオフセットのリセット機能を使用してメッセージを複数回消費したりできます。

メッセージのクリーンアップメカニズム

Apache RocketMQでは、メッセージの保存期間は実際の保存期間とは異なります。 これは、メッセージがローカルディスクに格納されるためです。 ローカルディスク容量が不足すると、サービスの安定性を確保するためにメッセージを強制的に削除します。 その結果、実際の保存期間は指定された保存期間よりも短くなります。

ApsaraMQ for RocketMQストレージシステムは、Alibaba cloudのクラウドネイティブテクノロジーに基づいて開発されています。 これにより、すべてのインスタンスがストレージ容量に制限を課すことなくストレージスペースを使用できます。 すべてのメッセージは、指定された保存期間に基づいて保存されます。 ストレージスペースが不足しているためにメッセージが削除されることを心配する必要はありません。

使用上の注意

ビジネス要件に基づいてストレージ期間を増やす

ApsaraMQ for RocketMQは、ストレージ期間に基づいてメッセージを保持するかどうかを制御します。 ビジネス要件に基づいて、より長いストレージ期間を指定することを推奨します。 ストレージ期間が長くなると、緊急障害の回復、緊急トラブルシューティング、およびメッセージのバックトラッキングのための操作を実行する余地が増えます。