オープンソースのApache RocketMQと比較して、Alibaba Cloud ApsaraMQ for RocketMQはより安定しており、より包括的なO&Mシステムを提供します。 Apache RocketMQクラスターをApsaraMQ for RocketMQインスタンスに移行して、サービスエクスペリエンスを向上させることができます。 このトピックでは、ApsaraMQ forRocketMQが提供する移行ソリューションと、移行ソリューションの動作メカニズムについて説明します。
Apache RocketMQとApsaraMQ forRocketMQの比較
Apache RocketMQと比較して、ApsaraMQ for RocketMQには、技術アーキテクチャ、スケーラビリティ、O&M、およびエンタープライズレベルの機能の点で利点があります。 次の表は、Apache RocketMQとApsaraMQ forRocketMQの比較です。
項目 | 自己管理型Apache RocketMQクラスター | ApsaraMQ for RocketMQ 5.xインスタンス |
ストレージスケーラビリティ | リソースプールは提供されません。 結合されたストレージ・コンピューティング・アーキテクチャが使用される。 | 大規模なリソースプールは、Alibaba cloudのクラウドインフラストラクチャに基づいて提供されます。 ストレージはコンピューティングから切り離されています。 |
APIおよびSDKアクセス | Apache RocketMQ SDKがサポートされています。 |
|
技術アーキテクチャ |
|
|
Computing scalability |
|
|
O&Mの複雑さ |
|
|
安定性保証 | O&Mはユーザーによって実行され、上級技術サポート担当者の支援が必要です。 | サービス能力が保証されるサービスレベル契約 (SLA) が提供される。
|
エンタープライズレベルの機能 | エンタープライズレベルの機能はユーザーによって開発され、上級技術サポート担当者の支援が必要です。 | このサービスはすぐに使用でき、エンドツーエンドのカナリアリリース、メッセージルーティング、メッセージレプリケーション、抽出、変換、ロード (ETL) 、イベント統合、イベント分析などの機能を提供します。 |
体系的なディザスタリカバリ | O&Mはユーザーによって実行され、上級技術サポート担当者の支援が必要です。 | 以下のディザスタリカバリソリューションが提供されます。
|
働くメカニズム
基本要件
- 中断のないメッセージングサービス
上位層のメッセージングアプリケーションが影響を受けないこと、および移行中に多数のエラーや障害が報告されないことを確認してください。
- 大量の重複メッセージがない
移行中に重複するメッセージが多数存在しないことを確認してください。 このように、ユーザは、システム内で重複したメッセージを処理する必要がない。
- メッセージングで顕著な待ち時間がない
移行中に、エンドツーエンドのメッセージング遅延に顕著な変化が発生しないようにしてください。 これにより、移行中でもメッセージを受信できます。
ソリューション設計
前述の移行要件を満たすために、ApsaraMQ for RocketMQは、ビジネスに影響を与えることなく、自己管理型Apache RocketMQクラスターをApsaraMQ forRocketMQインスタンスに効率的に移行できる移行ツールを提供しています。 このツールを使用して、トピック、グループ、消費の進行状況などのメッセージとメタデータを移行できます。
- メタデータの移行: 移行ツールは、自己管理型Apache RocketMQクラスターのメタデータを読み取り、そのメタデータをApsaraMQ for RocketMQインスタンスにコピーします。 このようにして、メタデータが作成され、同期される。
- メッセージの移行: 移行ツールは、バックエンドでトピックに関するルーティング情報を制御し、ApsaraMQ for RocketMQの組み込みルーティング制御コンポーネントを使用して、クライアントの読み取りトラフィックと書き込みトラフィックを動的に切り替えることができます。 トラフィックの切り替えはビジネスには影響しません。
前の図のソースクラスタのトピックAに、8つの読み取りパーティションと8つの書き込みパーティションがあるとします。
メタデータ移行タスクを作成すると、トピックaという名前のトピックもターゲットインスタンスに作成されます。 ターゲットインスタンスのトピックAには、ソースクラスターのトピックAと同じ数の読み取りパーティションと書き込みパーティションがあります。
メッセージの移行中、ApsaraMQ for RocketMQのルーティング制御コンポーネントは、移行元クラスターと移行先インスタンスに関するルーティング情報を制御し、移行ステージに基づいてパーティションに関する読み取りおよび書き込み情報をクライアントに返します。 例:- ソースクラスターと宛先インスタンスの読み取り操作: このシナリオでは、ソースクラスターと宛先インスタンスの16の読み取りパーティションに関する情報が返されます。
- 宛先クラスターの書き込み専用操作: 宛先クラスターの8つの書き込みパーティションに関する情報が返されます。
メリット
ApsaraMQ for RocketMQが提供する移行ソリューションは、メッセージをルーティングするためのメタデータプロキシコンポーネントに基づいて実装されています。 このコンポーネントはAlibaba Cloudによって開発され、トピック固有のメッセージルーティング、メッセージングスケジューリング、およびトラフィックスイッチ管理をサポートします。 移行ソリューションには、次の利点があります。
- 中断のないメッセージングサービス
移行ソリューションは、ビジネスに影響を与えずにトラフィックの切り替えをサポートします。 トラフィック切り替え中に、メッセージを送受信することができる。 まれに、メッセージの遅延と重複が発生します。
- 追加のリソースは必要ありません
クラスターをスケールアウトしたり、複数のクラスターをデプロイしたりする必要はありません。 更新または変更を実行するためにパラメータを設定するだけで済みます。
- ビジネスへの影響が非常に少なく、実装が容易
アプリケーションのエンドポイントを手動で変更し、アプリケーションを1回再起動するだけです。 後続のトラフィックスイッチは、ApsaraMQ for RocketMQブローカーの動的設定に基づいて有効になります。 メッセージングの依存関係を整理することなく、メッセージングサービスのアップストリームおよびダウンストリームアプリケーションをアップグレードできます。 この操作は、ビジネスへの影響が非常に少ないです。 このようにして、上流および下流のアプリケーションは、移行に容易に対処することができる。
- カナリアリリースとロールバックのサポート
移行タスクはトピックレベルで正確です。 トピック固有のカナリアリリースを実行できます。 移行中にビジネスリスクが発生した場合は、ロールバックできます。