第26章 メッセージグループ化
メッセージグループは、以下の特徴を持つメッセージセットです。
- メッセージグループ内のメッセージは、同じグループ ID を共有します。つまり、これらは同じグループ ID プロパティーを持っています (JMS の場合は
JMSXGroupID、HornetQ コア API の場合は_HQ_GROUP_ID)。 - メッセージグループ内のメッセージは、キューに多くのコンシューマーがある場合であっても常に同じコンシューマーにより消費されます。これらは同じグループ ID を持つすべてのメッセージを同じコンシューマー割り当てます。このコンシューマーが閉じられると、別のコンシューマーが選択され、同じグループ ID を持つすべてのメッセージを受け取ります。
メッセージグループは、プロパティーの特定の値のすべてのメッセージを同じコンシューマーによって順番に処理する場合に役に立ちます。
例としては、特定の下部の注文などがあります。特定の株の注文を同じコンシューマーによって順番に処理したいとします。この場合は、コンシューマーのプールを作成し (おそらく、各株に対して 1 つ)、株の名前を _HQ_GROUP_ID プロパティーの値として設定できます。
これにより、特定の株のすべてのメッセージが常に同じコンシューマーによって処理されます。
26.1. コア API の使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
メッセージグループを識別するために使用されるプロパティー名は
"_HQ_GROUP_ID" (または定数 MessageImpl.HDR_GROUP_ID) です。または、ランダムで一意の ID を所得する SessionFactory で autogroup を設定できます。