Java 持久订阅者如何使用JMS?
因此,我创建了一个主题的并发消费者,即多个侦听器。我正在将它们配置为耐用Java 持久订阅者如何使用JMS?,java,spring-boot,jms,publish-subscribe,durable-subscription,Java,Spring Boot,Jms,Publish Subscribe,Durable Subscription,因此,我创建了一个主题的并发消费者,即多个侦听器。我正在将它们配置为耐用 @Bean public DefaultMessageListenerContainer listenerContainers() { DefaultMessageListenerContainer container = new DefaultMessageListenerContainer(); container.setConnectionFactory(connectionF
@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个则会立即确认,因为它们处于空闲状态 现在让我们假设第二件事发生了
OR
有人能解释一下concurrentconsumer、durable subscription和SetSessionTransact=true的配置流是如何工作的吗?消息传递提供程序将在事件消息发布时将其放入订阅者的订阅队列中。是订阅者从订阅队列中提取(或使用侦听器接收)这些消息。因此,如果订阅者正忙于处理事件消息,其他订阅者根本不受影响,他们将继续接收发布。事实上,订阅者不会知道其他订阅者的存在 我相信即使没有持久订户,只有普通订户,这种功能也会保持不变,对吗?是的,订阅是否持久并不重要。