开发者社区> 问答> 正文

并发请求rabbitmq之后增加的channel显示no customers 400 请求报错 

spring和rabbitmq结合,rabbitmq有个channel的缓存,默认好像是25,生产者和消费者都配好后默认会创建一个channel,在并发以后又会自动增加channel,但是这些增加的channel都显示no customers,能被消费者使用的还是只有最开始创建的那个,我怀疑是消费者没有和channel绑定所以增加的channel都是空闲的,不知道有什么办法可以让这些channel能被消费者使用? spring的rabbitmq配置: <!-- spring amqp默认的是jackson 的一个插件,目的将生产者生产的数据转换为json存入消息队列 -->       <bean id="jsonMessageConverter"  class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter"/>           <!-- 创建connectionFactory -->          <!-- org.springframework.amqp.rabbit.connection.CachingConnectionFactory -->     <!-- <task:executor id="mqExecutor" pool-size="3-5" keep-alive="600" queue-capacity="2000" rejection-policy="CALLER_RUNS" /> -->     <rabbit:connection-factory id="connectionFactory"         addresses="${rabbit.addresses}"         username="${rabbit.username}"         password="${rabbit.password}"         />              <!-- org.springframework.amqp.rabbit.core.RabbitAdmin -->     <rabbit:admin connection-factory="connectionFactory" />          <!-- queue 队列声明-->           <!--         queue_loanInfomation    进件         queue_payCollect        代扣      -->     <rabbit:queue id="queue_loanInfomation" name="queue_loanInfomation" durable="true" auto-delete="false" exclusive="false" />     <!-- <rabbit:queue id="queue_payCollect" name="queue_payCollect" durable="true" auto-delete="false" exclusive="false" /> -->          <!-- exchange queue binging key 绑定 -->     <!-- 将Queue、Exchange设置为Durable即不会发生数据丢失问题 -->     <rabbit:direct-exchange id="rd-mq-exchange" name="rd-mq-exchange" durable="true" auto-delete="false" >         <rabbit:bindings>             <rabbit:binding queue="queue_loanInfomation" key="queue_loanInfomation_key" />             <!-- <rabbit:binding queue="queue_payCollect" key="queue_payCollect_key" /> -->         </rabbit:bindings>     </rabbit:direct-exchange>               <!-- 生产者配置:spring template声明 -->     <!-- org.springframework.amqp.rabbit.core.RabbitTemplate -->     <rabbit:template id="rabbitTemplate" exchange="rd-mq-exchange"         connection-factory="connectionFactory" message-converter="jsonMessageConverter" />                      <!-- 消费者监听:queue listener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象 -->     <rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto" requeue-rejected="false"         message-converter="jsonMessageConverter">         <rabbit:listener ref="loanInfomationListener" method="listen" queues="queue_loanInfomation" />         <!-- <rabbit:listener ref="payCollectListener" method="listen" queues="queue_payCollect" /> -->     </rabbit:listener-container>

展开
收起
kun坤 2020-05-29 12:03:09 998 0
1 条回答
写回答
取消 提交回答
  • Channel是不是没和exchange,queue绑定在一块? Channel.exchangeBind,Channel.queueBind 如果没定义先定义exchangeDeclare,queueDeclare######这个要怎么绑?我知道channel有这些属性,但是不知道spring里怎么配置?spring里只和exchange只和queue绑定了。给你贴一下我的配置文件帮忙看一下

    2020-05-29 12:03:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RocketMQ Client-GO 介绍 立即下载
RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载