|
RocketMQは、ピュアJavaで開発された、分散型のキューベースのオープンソースメッセージミドルウェアです。以前はMetaQとして知られていたこのミドルウェアは、Alibabaによって開発されたキューベースのメッセージミドルウェアで、その後Apache Software Foundationによってオープンソース化され、Apacheのトップレベルプロジェクトとなりました。高性能、高信頼性、優れたリアルタイム性、そして分散アーキテクチャを特徴としています。 同時に、非同期通信分離、エンタープライズソリューション、金融支払い、電気通信、電子商取引、高速物流、広告とマーケティング、ソーシャルネットワーキング、インスタントメッセージング、モバイルアプリケーション、モバイルゲーム、ビデオ、モノのインターネット、車両のインターネットなど、多くの分野で広く使用されています。 次のような特徴があります。
RocketMQのアーキテクチャと原理分析 RocketMQアーキテクチャ ネームサーバー:
ブローカー (メッセージ サーバー): メッセージ ストレージ センター。プロデューサーからのメッセージを受信して保存します。コンシューマーはここからメッセージを取得します。
プロデューサー:
消費者:
ブローカーサーバー ブローカー サーバーは、メッセージの保存と送信、メッセージの取得、高可用性 (HA) などを担当します。ブローカー サーバーは、いくつかのメイン モジュールで構成されています。 リモート モジュール: クライアントからの要求を処理するブローカーのエントリ ポイント。 クライアント マネージャー: クライアント (プロデューサー/コンシューマー) を管理し、コンシューマー トピックのサブスクリプションを維持します。 ストア サービス (ストレージ サービス): データベースにメッセージを保存または取得するためのシンプルな API を提供します。 HA サービス (高可用性サービス): マスター ブローカーとスレーブ ブローカー間のデータ同期機能を提供します。 インデックス サービス: メッセージのインデックスを作成し、高速クエリ機能を提供します。 RocketMQの全体的なプロセス 1. ネームサーバーを起動します。起動後、ネームサーバーはポートをリッスンし、ブローカー、プロデューサー、コンシューマーからの接続を待機します。ルーティング制御センターとして機能します。 2. ブローカーが起動し、すべての Namesrv インスタンスとの永続的な接続を維持し、ハートビート パケットを定期的に送信します。
3. メッセージを送受信する前に、トピックを作成します。トピックを作成する際は、トピックを保存するブローカーを指定する必要があります。また、メッセージの送信時にトピックを自動的に作成することもできます。 4. プロデューサーがメッセージを送信する
5. 消費者の消費メッセージ
RocketMQ メッセージ トピック: 第 1 レベルのメッセージ タイプを表し、サブスクリプションの最も細かい単位です (プロデューサーがメッセージを配信し、コンシューマーがメッセージ ID を取得します)。
タグ: メッセージの第2レベルのタイプを表します。同じトピックを使用しながらも異なるタグを使用することで、同じビジネスモジュール内の異なるタスクを表すメッセージとなる場合があります。例えば、トランザクションメッセージは、トランザクション作成メッセージ、トランザクション完了メッセージなどにさらに分類できます。
メッセージ(メッセージ本体):メッセージは伝達される情報です。メッセージにはトピックが必須で、オプションでタグとキーと値のペアが含まれます。 メッセージ キュー: すべてのメッセージ キューは永続的です。
グループ:プロデューサーグループとコンシューマーグループに分かれており、同じ役割を持つグループがまとめられます。
RocketMQの機能 メッセージ モデル:
メッセージの順序
順次使用が指定されている場合、メッセージ使用の最大同時実行数は、コンシューマー グループがサブスクライブするメッセージ キューの数になります。 このモードでは、メッセージの順序は保証されなくなります。
メッセージの種類
RocketMQ スタンドアロンバージョンのインストール 1. ソースコードをダウンロードしてコンパイルします。
2. ネームサーバーを起動する
3. ブローカーを開始 conf ディレクトリでは、RocketMQ はさまざまなブローカーの構成ファイルを提供します。
そのうち、パラメータは次のとおりです。
4. メッセージの送受信 メッセージを送受信する前に、クライアント(プロデューサー/コンシューマー)にネームサーバーのアドレスを通知する必要があります。RocketMQは、これを実現するためのいくつかの方法を提供しています。 簡単にするために、以下に示すように環境変数 NAMESRV_ADDR を使用します。
|
RocketMQ の概念を深く理解する前に、まず RocketMQ 入門マニュアルを理解する必要があります。
関連するおすすめ記事
-
素晴らしいオープンソースの Web サイト変更検出システムをお勧めします。
-
業界を超えた疑問、PaddlePaddleからのソリューション:WAVE SUMMIT 2022は産業用インテリジェントアップグレードの重要な側面を探ります
-
AnboxでGoogle PlayストアをインストールしてARMサポートを有効にする方法
-
Microsoft と Linux: 真の好意か、それとも見せかけか?
-
オープンソース組み込みシミュレータ Skyeye 1.2.8rc1 がリリースされました。
-
Microsoft のオープンソース コンピューター ビジョン リポジトリが GitHub で再びトレンドになっています。