我一直在接收来自第三方的数据提要,并希望在不到一分钟的时间内处理大约10万条消息。
因此,考虑实现一个消息传递队列,通过该消息传递队列,我可以卸载处理部分并将消息推送到队列,
[其中100名工人(或其他任何数量)中的一名工人接替工作并处理。
了解有关基于JMS和Redis的消息传递,但是我不确定如何运行多个侦听器?
单个监听器已经配置。
JMS允许您通过“上下”字符串指定并发限制,例如“ 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;
}
}