古いブローカーバージョンを実行していると、パッチが適用されていないバグや見逃された最適化にメッセージングインフラストラクチャがさらされる可能性があります。ApsaraMQ for RocketMQ は、設定可能なメンテナンスウィンドウ中にブローカーを自動的に最新バージョンに更新するため、手動介入なしでインスタンスを最新の状態に保つことができます。更新中もメッセージの送受信は継続されます。
トラフィックパターンに合わせてメンテナンスウィンドウと更新スケジュールを調整し、中断を最小限に抑えてください。
サポートされているエディション
バージョン管理は、Enterprise Platinum Edition インスタンスでのみ利用可能です。
仕組み
バージョン番号の形式
ApsaraMQ for RocketMQ は、x.y-rmq-yyyymmdd の形式を使用します。
| セグメント | 意味 | 例 |
|---|---|---|
x.y | オープンソースの Apache RocketMQ バージョン x.y.z に対応します。ここで z は最新のパッチです。 | 5.1 は Apache RocketMQ 5.1.z にマッピングされます。 |
yyyymmdd | ApsaraMQ for RocketMQ のリリース日。各リリースには、機能の変更、最適化、バグ修正が含まれます。 | 20230329 |
更新例:
5.0-rmq-20230329から5.1-rmq-20230329へ -- オープンソースバージョンの更新5.0-rmq-20230329から5.0-rmq-20230411へ -- ApsaraMQ for RocketMQ のパッチ更新
各リリースの詳細については、「ApsaraMQ for RocketMQ 5.x のリリースノート」をご参照ください。
更新ルール
| プロパティ | 詳細 |
|---|---|
| 更新方法 | 自動。新しいバージョンが発表されると、システムは更新タスクを作成します。 |
| ターゲットバージョン | 中間バージョンがいくつ存在しても、常に利用可能な最新バージョン。 |
| バージョンの有効性 | 各バージョンは6ヶ月間サポートされます。 |
| ロールバック | サポートされていません。更新が完了すると、インスタンスは以前のバージョンに戻すことはできません。 |
更新タスクのスケジューリング
| プロパティ | 詳細 |
|---|---|
| スケジュール時刻 | リリース日の最も近いメンテナンスウィンドウの開始 |
| 期限 | スケジュール時刻の7日後 |
| タスク生成 | 更新発表がリリースされた直後 |
| キャンセル可能 | いいえ |
| 再スケジュール可能 | はい |
メンテナンスウィンドウ
メンテナンスウィンドウは、自動更新が実行されるタイミングを制御します。
デフォルトウィンドウ: 02:00 -- 06:00。
ウィンドウをカスタマイズするには、「メンテナンスウィンドウの変更」をご参照ください。
変更されたウィンドウは、変更後に作成された更新タスクにのみ適用されます。既存の保留中のタスクは元のスケジュールを維持します。
開始時刻と終了時刻が同じ場合、更新はその日のいつでも実行できます。
終了時刻が開始時刻より早い場合、ウィンドウは深夜をまたぎます。例えば、開始
11:00/ 終了02:00は、更新が現在の日の 11:00 から翌日の 02:00 の間に実行できることを意味します。
更新の影響と準備
更新が実行される前に、これらの影響を確認し、ご利用のアプリケーションを準備してください。
期間と接続性
ほとんどの更新は30分以内に完了します。更新がこの時間を超える場合は、チケットを送信してください。Enterprise Platinum Edition ユーザーは、DingTalk グループで問題を報告することもできます。
更新中にブローカーはバッチで再起動します。クライアントは一時的な再接続を経験する可能性がありますが、メッセージは引き続き送受信できます。
重複メッセージの配信
更新中にメッセージが複数回消費される可能性があります。べき等な消費を実装することで、コンシューマーが重複を適切に処理できるようにしてください。ガイダンスについては、「メッセージのべき等性」をご参照ください。
更新中の制限された操作
更新の進行中、以下の操作はブロックされます。
| ブロックされる操作 | 利用可能な代替手段 |
|---|---|
| インスタンスのサブスクライブ解除 | 更新が完了するまで待機してください。「サブスクライブ解除プロセス」をご参照ください。 |
| インスタンスのリリース | 更新が完了するまで待機してください。「インスタンスのリリース」をご参照ください。 |
| 構成のダウングレードまたはアップグレード | 更新が完了するまで待機してください。「インスタンス構成の変更」をご参照ください。 |
| トピックやその他のリソースの作成または削除 | 更新中はコンソールでのリソース管理操作を避けてください。 |
注: 更新中も更新は利用可能です。「インスタンスの更新」をご参照ください。
完了後のロールバックなし
更新が完了すると、インスタンスは以前のバージョンに戻すことはできません。スケジュールされた更新の前に、ご利用のアプリケーションが最新のブローカーバージョンと互換性があることを確認してください。
更新の準備
バージョン更新中の中断を最小限に抑えるために、以下のプラクティスに従ってください。
オフピーク時間中に更新をスケジュールしてください。一時的な再接続の影響を軽減するために、メンテナンスウィンドウをトラフィックの少ない期間に調整してください。
べき等な消費を実装してください。更新中にメッセージが複数回配信される可能性があるため、コンシューマーが重複を処理するように設計してください。「メッセージのべき等性」をご参照ください。
更新中はリソースの変更を凍結してください。更新の実行中は、トピックやその他のリソースを作成、削除、または変更しないでください。
アプリケーションの互換性を確認してください。ロールバックはサポートされていないため、スケジュールされた更新の前に、ご利用のアプリケーションを新しいブローカーバージョンに対してテストしてください。
更新タスクの再スケジュール
保留中の更新タスクが実行されるタイミングを変更します。
ApsaraMQ for RocketMQ コンソールにログオンします。左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部ナビゲーションバーで、中国 (杭州)などのリージョンを選択します。[インスタンス] ページで、管理するインスタンスの名前をクリックします。
インスタンスの詳細 ページで、バージョン管理 タブをクリックします。
[保留中のタスク] タブをクリックします。
更新タスクを見つけ、操作 列の [時間変更] をクリックします。
[保留中のタスク更新時刻の変更] パネルで、[新しい更新予約時間] を設定し、OK をクリックします。
再スケジューリング後、[保留中のタスク] タブにタスクの新しい実行時間が表示されていることを確認します。
メンテナンスウィンドウの変更
自動更新が実行される時間範囲をカスタマイズします。
注: 新しいウィンドウは、変更後に作成された更新タスクにのみ適用されます。既存の保留中のタスクは元のスケジュールを維持します。既存のタスクの時間を変更するには、「更新タスクの再スケジュール」をご参照ください。
ApsaraMQ for RocketMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部ナビゲーションバーで、中国 (杭州) などのリージョンを選択します。インスタンスページで、管理するインスタンスの名前をクリックします。
[インスタンスの詳細] ページで、[バージョン管理] タブをクリックします。右上隅で、[設定の更新] をクリックします。
[バージョン更新設定の変更]パネルで、新しいメンテナンスウィンドウをセットし、[OK]をクリックします。
保存後、[バージョン管理] タブに戻り、表示されるメンテナンスウィンドウが設定した値と一致することを確認します。
関連トピック
「ApsaraMQ for RocketMQ 5.x のリリースノート」 -- 各ブローカーバージョンで何が変更されたかを確認してください。
「メッセージのべき等性」 -- 更新中に重複メッセージを処理するために、べき等な消費を実装してください。
「インスタンスの更新」 -- 更新中も利用可能なインスタンスの有効期間を延長します。