我如何在 Spring 引导 Java 中 运行 多个侦听器?
How can I run multiple listeners in Spring Boot Java?
我不断接收来自第三方的数据馈送,并希望在不到一分钟的时间内处理大约 10 万条消息。所以考虑实现一个消息队列,通过它我可以卸载处理部分并将消息推送到队列,其中 100 个工作人员(或任何数量)选择工作并处理它。
我读过有关基于 JMS 和 Redis 的消息传递的信息,但我不确定如何 运行 多个侦听器。单个侦听器已配置。
Spring JMS 允许您通过 "lower-upper" 字符串指定并发限制,例如“5-10”,或一个简单的上限字符串,例如“10”(在这种情况下,下限将为 1)。
侦听器容器将始终保持最小数量的消费者 (setConcurrentConsumers(int)) 并将慢慢扩展到最大消费者数量
参见:
Spring 引导配置 bean 中的示例:
@Configuration
@EnableJms
public class AppConfig {
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory
= new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setConcurrency("3-10");
return factory;
}
}
我不断接收来自第三方的数据馈送,并希望在不到一分钟的时间内处理大约 10 万条消息。所以考虑实现一个消息队列,通过它我可以卸载处理部分并将消息推送到队列,其中 100 个工作人员(或任何数量)选择工作并处理它。
我读过有关基于 JMS 和 Redis 的消息传递的信息,但我不确定如何 运行 多个侦听器。单个侦听器已配置。
Spring JMS 允许您通过 "lower-upper" 字符串指定并发限制,例如“5-10”,或一个简单的上限字符串,例如“10”(在这种情况下,下限将为 1)。
侦听器容器将始终保持最小数量的消费者 (setConcurrentConsumers(int)) 并将慢慢扩展到最大消费者数量
参见:
Spring 引导配置 bean 中的示例:
@Configuration
@EnableJms
public class AppConfig {
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory
= new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setConcurrency("3-10");
return factory;
}
}