1

2人のチャンネル登録者がいるトピックがあります。ただし、サブスクライバーの1つはクラスターにデプロイされます。したがって、実際には(私は思いますか?)、クラスターは複数のサブスクライバーと見なされます。クラスターによって消費されるメッセージが1つだけであることを確認する必要があります。

これを行うためのオプションがわかりません。クラスターとトピックの間にキューを挿入し、クラスター化されたアプリケーションが挿入されたキューでのみ機能するようにすることは可能ですか?

これが可能な場合、一般的に、キューをトピックに「サブスクライブ」させるにはどうすればよいですか?

私が聞いたもう1つのアイデアは、クラスター内にクローンサブスクライバーを作成することです。この問題を解決する前に、これを聞いた人はいますか?

もう1つのアイデアは、トピックを廃止し、代わりに2つのキューを使用することです。これは安全な解決策のようですか?

WebSphereMQの使用

4

1 に答える 1

1

これを実現するには、永続サブスクリプションを使用できます。

永続的なサブスクリプションを管理的に作成し、宛先 (基本的にはキュー) を指定します。この宛先は、指定されたトピックで発行されたパブリケーションを受け取ります。クラスター化されたアプリケーションは、その宛先からメッセージを取得できます。パブリケーションはキューから受信されるため、アプリケーションの 1 つのインスタンスのみがメッセージを取得します。

以下のコマンドは、宛先キューを Q1 としてトピック「/SPORTS/HOCKEY」の永続サブスクリプションを作成します。

DEFINE SUB(SPORTSUB) TOPICSTR(/SPORTS/HOCKEY) TOPICOBJ(SPORT) DESTQ(Q1)
于 2012-12-12T04:00:36.187 に答える