ApsaraMQ for RocketMQは、プロデューサーとコンシューマーに異なるロードバランシングポリシーを使用します。 コンシューマの場合、負荷分散ポリシーはメッセージの蓄積に影響します。
背景情報
ApsaraMQ for RocketMQでは、クライアントSDKの更新に基づいて負荷分散ポリシーが最適化されます。 次の負荷分散ポリシーを使用できます。
SDK for Java V2.x.x.FinalおよびSDK for C ++ V3.x.xと互換性のある負荷分散ポリシー
前提条件
Java用TCPクライアントSDK:
Java用TCPクライアントSDKがV2.x.x.Finalにアップグレードされました。
インスタンスは、中国 (杭州) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (深セン) 、中国 (成都) 、ドイツ (フランクフルト) 、インドネシア (ジャカルタ) のいずれかのリージョンにデプロイする必要があります。
C ++ のためのTCPクライアントSDK:
C ++ 用TCPクライアントSDKがV3.x.xにアップグレードされました。
インスタンスは任意のリージョンにデプロイできます。
メリット
SDK for Java V2.x.x.FinalおよびSDK for C ++ V3.x.xと互換性のある負荷分散ポリシーには、次の利点があります。
消費者は柔軟な方法でメッセージを消費できます。 コンシューマはキューに基づいてメッセージを消費しなくなりました。 同じキュー内のメッセージは、複数のコンシューマによって消費されます。
消費者の数が待ち行列の数を超えると、消費者はアイドル状態のままではない。 これにより、リソースの無駄を回避できます。
プロデューサの負荷分散ポリシー
順序付けられていないメッセージの場合、プロデューサはラウンドロビンモードでメッセージをキューに送信します。 無効メッセージは、通常メッセージ、トランザクションメッセージ、スケジュール済みメッセージ、および遅延メッセージです。 次の図は例を示しています。
前の図では、3つのキューが利用可能であり、「Msg」に続く数字はメッセージのシーケンスを示します。 プロデューサは、第1のメッセージをキュー1に送信し、第2のメッセージをキュー2に送信し、第3のメッセージをキュー3に送信し、第4のメッセージをキュー1に送信し、その後のメッセージを同じシーケンスで送信する。
順序付けられたメッセージの場合、プロデューサは同じシャードキーを持つメッセージを同じキューに送信します。 次の図は例を示しています。
上の図では、プロデューサーはシャードキーが1のすべてのメッセージをキュー1に送信し、シャードキーが2のすべてのメッセージをキュー2に送信します。
消費者向けの負荷分散ポリシー
順序付けられていないメッセージの場合、ApsaraMQ For RocketMQブローカーは、トピック内のすべてのメッセージをグループ内の複数のコンシューマに均等に配布します。
Java V2.x.x.Final用のSDKまたはC ++ V3.x.x用のSDKを使用してメッセージを消費すると、キューに基づく負荷分散は実行されなくなります。 同じキュー内のメッセージは、複数のコンシューマによって消費されます。 次の図は例を示しています。
上の図では、各キュー内の複数のメッセージを異なるコンシューマーで同時に消費できます。 例えば、キュー2内の4つのメッセージは、消費のために消費者1、消費者2、消費者3、および消費者4に配信される。
順序付きメッセージの場合、ApsaraMQ forRocketMQはシャーディングキーに基づいてバランスメッセージを読み込みます。 異なるシャーディングキーを有するメッセージは、消費のために複数のキューに負荷分散することができる。 同じシャーディングキーを持つメッセージは、同じコンシューマーに送信されます。 これにより、メッセージが生成された順序で確実に消費されます。 次の図は例を示しています。
説明: この背景色のメッセージはキュー1に属します。 Msg2-1は、メッセージがキュー1の2番目のメッセージであり、メッセージのシャーディングキーが1であることを示します。
: この背景色のメッセージはキュー2に属します。 Msg3-2は、メッセージがキュー2の3番目のメッセージであり、メッセージのシャーディングキーが2であることを示します。
上の図では、Msg1-1、Msg2-1、およびMsg3-1はすべて、同じシャーディングキー1を持つため、コンシューマー1によって使用されます。 同様に、シャーディングキーが2であるメッセージはすべてコンシューマ2によって消費される。
Msg4-3とMsg4-4は、シャーディングキーが異なるため、消費のために異なる消費者に配布されます。