メインコンテンツにスキップ

5.0速览

RocketMQ 5.0を選ぶ理由

Apache RocketMQは、その誕生以来、シンプルなアーキテクチャ、豊富なビジネス機能、優れた拡張性などの特徴により、多くの企業開発者やクラウドベンダーに広く採用されてきました。10年以上にわたる大規模なシナリオでの磨き上げを経て、RocketMQは業界で広く認知された金融グレードの信頼性の高いビジネスメッセージングの第一の選択肢となり、インターネット、ビッグデータ、モバイルインターネット、IoTなどの分野で幅広く利用されています。RocketMQはオープンソースコミュニティで10年以上が経過しましたが、企業アーキテクチャのクラウドネイティブ化の波の中、私たちは常にRocketMQのアーキテクチャの進化と、上位レイヤーへの統合価値の向上について考えてきました。Apache RocketMQ 5.0の進化目標は3つあります。メッセージングインフラストラクチャのクラウドネイティブ化の進化:クラウドネイティブの潮流におけるインフラストラクチャとエコテクノロジーを十分に組み合わせ、リソースの利用と弾力性を向上させます。統合効率の課題のアップグレードと最適化:APIとSDKの多方面からの再構築設計により、開発者にとってよりシンプルで使いやすく、軽量で統合しやすいソリューションを提供します。イベント、ストリーム統合シナリオの拡張:現在のビジネス統合機能をベースに、メッセージング分野の後処理シナリオに焦点を当て、メッセージのストリーム処理と軽量計算をサポートし、ユーザーがメッセージのローカル計算と分析を実現するのを支援し、ServerlessとEDAを全面的に採用します。

img

RocketMQ 5.0の新機能

インフラストラクチャのクラウドネイティブ化アップグレード

RocketMQは、その誕生以来、常にシンプルなアーキテクチャを貫いてきました。たとえば、メタデータには最終的な整合性の設計を採用し、ステートレスなNameSrvコンポーネントを数百行のコードのみで導入しました。他の製品がメタデータの管理と保守にZKに依存しているのと比較して、RocketMQの利点は明らかです。企業クラウドの普及とクラウドネイティブテクノロジートレンドの進化に伴い、統合されたネットワーク環境はより複雑になり、企業開発者の効率に対する要求も高まっています。現在のアーキテクチャには依然としていくつかの欠点があることがわかりました。現在のアーキテクチャでは、ストレージリソースと計算リソースの柔軟なマッチングは比較的困難です。特に、今日の企業がクラウドに徐々に普及している状況では、クラウドベンダーの計算リソースとストレージリソース間の切り離された柔軟な弾性戦略により、コスト削減と効率向上がより適切に実現できます。

img

RocketMQ 5.0では、新しい弾力性のあるステートレスプロキシモデルを導入し、現在のBrokerの役割を分割し、クライアントプロトコルのアダプテーション、権限管理、コンシューマー管理などの計算ロジックを抽出しました。独立したステートレスプロキシロールがサービスを提供し、Brokerはストレージ機能の継続的な最適化に焦点を当て続けます。このモデルは、クラウド環境でのリソースの弾力的なスケジューリングをより適切に実現できます。RocketMQ 5.0の新しいモデルは、4.0のミニマルアーキテクチャモデルと互換性があり、相互に接続できることに注意してください。5.0のプロキシアーキテクチャはローカルモードで完全に実行でき、4.0アーキテクチャと完全に同じ効果を実現します。開発者は、ビジネスシナリオに応じて、アーキテクチャのデプロイを自由に選択できます。

軽量APIとマルチ言語SDK

アーキテクチャの変更に加えて、RocketMQ 5.0では、開発者向けの統合インターフェース、つまりAPIとSDKの設計について再考しました。RocketMQ 4.x SDKは比較的重量級のファットクライアントモデルであり、順序付けられた消費、ブロードキャスト消費、コンシューマー負荷分散、メッセージキャッシュ、メッセージ再試行、ポジション管理、プッシュプル結合、フロー制御、診断、フェイルオーバー、異常ノード分離などの一連の機能を提供していました。これらの複雑な機能は、ビジネス統合が実際の問題を解決するのに役立つ可能性がありますが、独自の進化と反復には比較的大きな負担がかかり、クライアントのアップグレードと多言語の普及は困難です。APIのシンプルさと使いやすさの点で、RocketMQ 5.0は軽量設計に取り組んでいます。

img

RocketMQ 5.0は、gRPCベースの新しい多言語SDKをリリースしました。このSDKにはいくつかの重要な機能があります。新しいミニマルなAPIを採用し、不変APIの設計、完全なエラー処理、各言語SDK APIはローカル言語レベルで調整されています。新しいAPIは複雑さを簡素化し、より簡単に使用および統合できます。クラウドネイティブRPC標準フレームワークであるgRPC、標準のトランスポートレイヤーフレームワークを採用し、インターセプトが容易で、特にService Meshに統合してより多くのトランスポートレイヤー基本機能を付与するのに適しています。クライアントの軽量化。代表的な「SimpleConsumer」を例にとると、新しいメッセージ指向のステートレス消費モデルを採用しており、SDK全体はコードから実行時まで非常に軽量です。軽量化は非常に重要な機能です。各ミドルウェアがファットクライアントの形式を採用している場合、これらのミドルウェアがSidecarに一緒に埋め込まれると、非常に巨大なSidecarになり、アプリケーションフレームワーク統合の複雑さが非常に高くなります。

API/SDKの設計最適化に加えて、RocketMQ 5.0ではステートレス消費モデル、つまりPopメカニズムも導入しました。これは、キューモデルをベースにステートレスメッセージングモデルを革新的にサポートしたもので、1つのエンティティで2つの消費モデルを同時にサポートし、メッセージとストリームの「二元性」を反映しています。ストリームシナリオの場合は、高パフォーマンスキューモデルを使用して消費します。メッセージングシナリオの場合は、ステートレスメッセージモデルを使用して消費します。ビジネスはメッセージ自体のみに関心を集中できます。たとえば、「SimpleConsumer」を使用すると、単一のメッセージレベルでの消費、再試行、非表示時間変更、および削除などのAPI機能を利用できます。

イベントとストリーム処理シナリオの統合

上記のインフラストラクチャとAPI統合の変更に加えて、RocketMQ 5.0はビジネスメッセージの基本的な利点に基づいて、メッセージの後処理計算におけるシナリオ探索をさらに拡大します。メッセージのストリーム処理と軽量計算をサポートし、ユーザーがメッセージのローカル計算と分析を実現するのを支援し、ServerlessとEDAを全面的に採用します。

img

企業のクラウドネイティブ化の加速に伴い、計算能力の構成はますます多様化しており、イベント駆動型アーキテクチャを使用してクラウドネイティブアプリケーションを開発することは非常に理にかなっています。RocketMQ 5.0は、この技術トレンドに基づいて、標準CloudEventsプロトコルと互換性のあるRocketMQ-EventBridgeコンポーネントをオープン化しました。EventBridgeは、豊富なクロス製品およびクロスプラットフォーム接続機能を提供し、クラウドベンダー、企業アプリケーション、SaaSサービスの相互統合を促進できます。EventBridgeの目標は、統一されたオープンスタンダードを使用して、コミュニティでアクティブなエコシステムをリンクし、同時に各クラウドベンダーの「ハブ」タイプの製品と統合して、オープンソースとクラウド間のデータ相互運用性を実現し、企業の顧客がクラウドに簡単に移行したり、クラウドから移行したりできるようにすることです。

img

メッセージストリーム処理シナリオでは、RocketMQ 5.0は現在のキューを物理キューとしてダウングレードし、上位レイヤーで論理キューを再抽象化しました。1つの論理キューには複数の物理キューを含めることができ、各物理キューは論理キューの一部として機能し、それらを接続して実際のストリームキューを作成します。このため、より軽量で、秒単位でのスケーリングが可能になり、物理ノードが変更されても、既存のデータコピーの移行は行われません。データストレージの柔軟なスケジューリングを実現し、TTLと組み合わせて無制限のストレージ機能を実現します。同時に、ストリームの高スループットシナリオに対応するために、RocketMQ 5.0はストレージバッチ処理の読み取りおよび書き込みパフォーマンスを最適化しました。

img

計算フレームワークの観点から、RocketMQ 5.0は軽量ストリーム処理フレームワークであるRStreamsを導入しました。RStreamsは依存関係が少なく、デプロイが簡単で、水平方向に拡張可能で、RocketMQリソースを使用して軽量のデータ処理と計算を完了できます。これに加えて、開発者がRocketMQベースのストリーム計算を簡単に行えるようにするために、RocketMQ 5.0は軽量SQLクエリエンジンRSQLDBもサポートしており、開発者にSQLベースの開発エクスペリエンスを提供します。RSQLDBは、Flink/Blink SQL標準とUDF/UDAF/UDTFを世界で初めて互換性があり、2つのオープンソース製品のエコシステムをより適切に統合できるようにします。開発者は、既存のFlink/Blink SQL計算タスクをRocketMQに移行し、RocketMQ内で軽量計算処理を完了できます。計算能力が制限されている場合や大規模なシナリオの場合でも、RocketMQのリアルタイム計算タスクをFlinkに移行し、Flinkのビッグデータ計算能力を利用してビジネス要件を満たすことができます。

5.0へのアップグレード方法

RocketMQ 5.0では、上記のアーキテクチャアップグレード、APIリファクタリング、および新しい機能シナリオの完了時に、下位互換性の原則を統一して遵守しました。RocketMQ 4.xバージョンは、5.0バージョンにシームレスにアップグレードでき、同時に以前のバージョンのSDKとの互換性を維持できます。5.0バージョンを選択する場合、以前のバージョンのアプリケーションとの非互換性を心配する必要はありません。サービス側のバージョンをアップグレードした後、できるだけ早く新バージョンのSDKに置き換えて、より優れたアクセスエクスペリエンスと新しい機能を入手することをお勧めします。 img