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>
Channel是不是没和exchange,queue绑定在一块? Channel.exchangeBind,Channel.queueBind 如果没定义先定义exchangeDeclare,queueDeclare######这个要怎么绑?我知道channel有这些属性,但是不知道spring里怎么配置?spring里只和exchange只和queue绑定了。给你贴一下我的配置文件帮忙看一下
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。