그래서 동시 소비자를 주제, 즉 여러 수신기에 생성합니다. 나는 그것들을 내구성있게 구성하고있다. 무엇 내가 알고 싶은영구 가입자는 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 가입자에 게시한다고 가정 할 수 있습니다. 그들 중 하나가 프로세스를 처리하므로 프로세스가 완료 될 때까지 즉각적으로 인식하지 못하고 남아있는 4 개는 유휴 상태이므로 즉시 확인합니다.
은 (는) 4 가입자에게 전송되고 5 가입자 큐에 메시지를 유지하고 그것이 승인을 제공 한 후에 만 5 가입자로 전송 이제
두 번째 이벤트를 가정 수 있습니다을왔다?
OR
이 5 가입자도 인정하고 한 번에 모든 가입자에게 보낼 때까지 큐에 메시지 가입자하지만 대기 중 하나로 보내 나던?
나는 setsessiontransacted true를 사용하고 있습니다. 1 또는 2은 어떻게됩니까? 또한 브로커가 각 동시 구독자의 내부 큐를 유지 관리하여 해당 영구 가입자에게 보내는 메시지의 흐름을 이해하고 있다고 가정합니다.
누군가가 concurrentconsumer, 영구 가입 및 setsessiontransacted = true 구성에 대해 어떻게 작동하는지 설명 할 수 있습니까?
내구성 가입자가 없다고해도 일반 가입자 만 있으면이 기능이 그대로 유지 될 것입니다. 맞습니까? – africandrogba
예, 구독이 오래 지속되는지 여부는 중요하지 않습니다. – Shashi