したがって、コンカレントコンシューマをトピック、つまり複数のリスナに作成しています。私はそれらを耐久性があるように構成しています。私が知りたいのは何恒久サブスクライバはJMSとどのように連携しますか?
@Bean
public DefaultMessageListenerContainer listenerContainers() {
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConnectionFactory(connectionFactory());
container.setDestinationName(COMMENT_QUEUE);
container.setPubSubDomain(true);
container.setSessionTransacted(true);
container.setConcurrentConsumers(2);
container.setSubscriptionDurable(true);
container.setMessageListener(datafileSubscriber);
container.start();
return container;
}
され、
は、イベントが来て、それがすべての5人の加入者に公開されているとします。それらのうちの1人が処理するので、処理が完了するまですぐには認識しませんが、残りの4つはアイドル状態であるためすぐに認識します。
は、2番目のイベントが来たと仮定しましょう、今
は、それが承認を与えた後にのみ、4人の加入者に送信され、第五加入者のためのキューにメッセージを保持し、第五加入者に送信しますか?
OR
第五加入者も認識し、その後、一度にすべての加入者に送り出すまでは、キュー内のメッセージの加入者が、待機のいずれかに送信doesntの?
私はsetsessiontransacted trueを使用しています。 1または2はどうなりますか? また、ブローカは、各永続サブスクライバの内部キューを維持して、その恒久サブスクライバへのメッセージの流れを理解していることを前提としています。
並列コンシューマ、永続サブスクリプションおよびsetsessiontransacted = trueの設定でフローがどのように機能するか説明できますか?
耐久性のあるサブスクライバがなくても、通常のサブスクライバを使用しても、この機能は同じです。 – africandrogba
はい、サブスクリプションが耐久性があるかどうかは関係ありません。 – Shashi