【发布时间】:2017-06-01 07:26:01
【问题描述】:
问:当messages(30,000+)涌入时,consumer server建立了太多的TCP,甚至超过10,000个。spring如何配置避免这种情况?!
【问题讨论】:
-
Welcome to So,避免将代码截图而不是直接粘贴到问题中。
标签: spring spring-boot tcp rabbitmq
问:当messages(30,000+)涌入时,consumer server建立了太多的TCP,甚至超过10,000个。spring如何配置避免这种情况?!
【问题讨论】:
标签: spring spring-boot tcp rabbitmq
这个 stackoverflow 问题可能会有所帮助:How is concurrency in Spring AMQP Listener Container implemented?
快速摘录,见“并发”:
<rabbit:listener-container connection-factory="myConnectionFactory" acknowledge="none" concurrency="10" requeue-rejected="false"> <rabbit:listener ref="myListener" queues="myQueue"/> </rabbit:listener-container>
我用的不是Spring XML配置,而是注解,不过这是我用来限制并发消费者数量的:
@Bean
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory() {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
// process each message one at a time
factory.setConcurrentConsumers(1);
factory.setMaxConcurrentConsumers(1);
return factory;
}
【讨论】: