【问题标题】:how to avoid too many connections(TCP) in rabbitMQ using spring如何使用spring避免rabbitMQ中的连接过多(TCP)
【发布时间】:2017-06-01 07:26:01
【问题描述】:

问:当messages(30,000+)涌入时,consumer server建立了太多的TCP,甚至超过10,000个。spring如何配置避免这种情况?!

听众:

sendMQ

以下是rabbitmq.xml

【问题讨论】:

  • Welcome to So,避免将代码截图而不是直接粘贴到问题中。

标签: spring spring-boot tcp rabbitmq


【解决方案1】:

这个 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;
    }

【讨论】:

  • 据我所知,监听器使用长连接,我在消费后使用短连接向 MQ 发送消息。是对的吗?如果是这样,是发送消息导致 TCP 数量过多,为什么要更改侦听器配置?
  • @counterFish 你有我在上面的答案的尝试。试试看。如果它有效,那就太好了,如果没有,请随时发表评论并说它不适合你。
猜你喜欢
  • 2014-11-18
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 2015-06-11
  • 2017-07-01
  • 1970-01-01
相关资源
最近更新 更多