Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
18.11.4. クラスター化されたグルーピング
重要
クラスター化されたグループ化は テクノロジープレビュー としてのみ提供されます。実稼働環境での使用はサポートされず、今後大幅に変更される可能性があります。
クラスター化されたグルーピングは、通常のメッセージのグループ化とは異なる方法に従います。クラスターの中では、特定のグループ ID を持つメッセージグループが、ノードのいずれかに到達できます。ノードでは、どのノードの、どのコンシューマーに、どのグループ ID がバインドされるかを判断することが重要です。各ノードは、メッセージグループがデフォルトで到達する場所に関係なく、それらのグループ ID を処理するコンシューマーを持つノードにメッセージグループを正しくルーティングします。指定したグループ ID を持つメッセージが、クラスター内の指定したノードに接続されている特定のコンシューマーに送信されます。この場合、これらのメッセージはコンシューマーが切断されても別のノードに送信されることはありません。
この状況は、グルーピングハンドラーによって処理されます。各ノードにグルーピングハンドラーがあります。また、このグルーピングハンドラー (と他のハンドラー) は、メッセージグループを正しいノードにルーティングする役割を担います。グルーピングハンドラーには、
ローカル
と リモート
という 2 つのタイプがあります。
ローカルハンドラーは、メッセージグループが取るルートを決定します。リモートハンドラーはローカルハンドラーと通信し、適切に動作します。各クラスターは、特定のノードを選択してローカルグルーピングハンドラー指定するようにします。また、その他のすべてのノードには、リモートハンドラー指定する必要があります。
警告
メッセージのグループ化がクラスターで使用されると、設定されたリモートグルーピングハンドラーを持つサーバーが失敗すると破損します。リモートグルーピングハンドラーのバックアップの設定にも影響はありません。
以下のようにサーバー設定ファイル(
standalone.xml
および domain.xml
)で「ローカル」および「リモート」グルーピングハンドラーを設定できます。
<grouping-handler name="my-grouping-handler"> <type>LOCAL</type> <address>jms</address> <timeout>5000</timeout> </grouping-handler> <grouping-handler name="my-grouping-handler"> <type>REMOTE</type> <address>jms</address> <timeout>5000</timeout> </grouping-handler>"timeout" 属性は、指定した時間内にルーティングを決定することを保証します。この時間内にデシジョンが行われないと、例外が発生します。
最初にメッセージグループを受け取るノードは、通常のクラスタールーティング条件(ラウンドロビンキューの可用性)に基づいてルーティングの決定を行います。ノードは、この決定をそれぞれのグルーピングハンドラーに提案します。グルーピングハンドラーが受け入れた場合は、提案されたキューにメッセージをルーティングします。
グルーピングハンドラーが提案を拒否した場合は、他のルートを提案し、それに応じてルーティングを行います。その他のノードも先例に従い、選択したキューにメッセージグループを転送します。メッセージがキューに到達すると、そのキューのカスタマーに固定されます。