基づいて、公式ドキュメント翻訳のために
記事のディレクトリ
概要
アパッチRocketMQ分散メッセージ・ストリームは、特性は、低レイテンシ、高性能、高信頼性、および1兆の弾性膨張容量を含むプラットフォームです。ネームサービス(ネームサーバ)、代理店サービス(ブローカー)、プロデューサー(生産者)、消費者(消費者):そのアーキテクチャは、次の4つの部分を含んでいます。前記各部分は、単一障害点を回避するために、水平方向に延長されます。図示のように:
##ネームサービスクラスタは
ネームサービスが見つけ、ルーティングのための軽量なサービスを提供しています。各ネーミングサービスは、ルーティング情報の全額を計上している、読み取りと書き込みの一貫したサービスを、迅速なストレージ拡張をサポートしています。
代理店サービスクラスタ
メッセージを格納するために軽量のトピック(TOPIC)とキュー(QUEUE)メカニズムを使用して代理店サービス。プッシュプロキシサービスサポート(プッシュ)とプル(プル)モードでは、充填された元の時系列での強いピークを提供するために、複数のコピー(部品の2つのコピー又は3分)を使用して、フォールトトレランスをサポートし、兆大きメッセージを積層します。そして、代理店サービスはまた、災害復旧、多次元統計、早期警戒メカニズムとして、いくつかの伝統的なメッセージングシステムを持っていない持っています。
プロデューサークラスタ
プロデューサーのサポートは、展開を配布しました。生産者は、ロードバランシング情報を介して配布される迅速な故障(高速フェイル)[^ 1]と低レイテンシをサポートするために、プロキシサービスクラスタ、送信プロセスに送られます。
消費者のクラスタ
消費者はまた、プッシュプルモードでの展開を分散、およびクラスタリングの消費量、およびメッセージの放送をサポートしてサポートすることができます。この方法でも、ほとんどの消費者のニーズを満たすために、リアルタイムニュース購読メカニズムを提供します。RocketMQ公式サイトも提供し、関連するページ関心のあるユーザーには。
ネーミングサービス
ネーミングサービスは、純粋に機能的なサーバは、それは二つの主な機能が含まれています:
- 代理店管理、サービスの命名エージェントは、単一のハートビートメカニズムの有効性を確認する一方で、登録エージェントサービスクラスタを受け入れるように
- 管理ルーティング、各ルーティングサービスは、プロキシクラスタの完全なルーティング情報を保存し、情報のクエリクライアントのニーズをキューイングしています。RocketMQクライアント(プロデューサー/コンシューマー)は、キューネーミングサービスからルーティング情報を取得しますが、クライアントは、サービスのアドレスを命名取得する方法?
ここでは、クライアントにサービスアドレスを命名する4つの方法は、流れに押されています。
- ハードのような、コード化されました
producer.setNamesAddr("ip:port")
。 - Javaの動作パラメータ、使用
rocketmq.namesrv.addr
。 - 環境変数を使用
NAMESRV_ADDR
。 - HTTPエンドポイント(エンドポイント)。
クリックしてここに文書のネーミングサービスの詳細を表示します。
代理店サービス
プロキシサービスは、その上のメッセージの保管と流通、情報のクエリ、高可用性、および責任があります。
以下に示すように、プロキシサービスは、いくつかの重要なサブモジュールが含まれています。
- リモートモジュール、プロキシサービスの入り口、クライアントから送信された処理要求。
- クライアント管理、クライアント(プロデューサー/コンシューマー)を管理し、消費者のサブスクリプションを保護します。
- ストレージサービス、またはメッセージを保存するための簡単なクエリインターフェイスを提供し、物理ハードディスク上に保存されています。
- 高可用性サービス、プロキシデータ同期から直接メインのエージェントとプロバイダー。
- インデックスサービス、特定のインデックスキー、高速検索を提供するために、メッセージに従って構成メッセージ。
[^ 1]:複数のスレッドは、コンテンツの同じセット上で動作しているとき、それはフェイルファストイベントを生成することができます。
例:スレッド、プロセスイテレータは、コンテンツのコレクションを横断するときに設定が他のスレッドによって変更された場合、例外がConcurrentModificationExceptionがフェイルファストイベントを生成スローされ、Aは、コレクションにアクセスするスレッド