RabbitTemplate进行池化后,相同exchange不同routingKey的情况怎么办呢

RabbitTemplate进行池化后,相同exchange不同routingKey的情况怎么办呢

RabbitTemplate进行池化以后,不同的topic(exchange)返回不同的RabbitTemplate实例,而topic(exchange)相同则返回同一个RabbitTemplate实例,请问是否会有同一个exchange但routingKey不同的情况?这种情况怎么解决呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
coding_zhang 2020-02-03 15:20:08

一般来讲这种情况会存在覆盖的情况,比如开始template的 routingkey=spring.* ,后来一条消息也是同一个topic,但是routingkey可能是 abc.* 这样就发送不出去了,因为一开始已经指定了routingkey的规则为:routingkey=spring.* ; 如果小伙伴想 一个topic(exchange)绑定多个routingkey,可以把模板容器里的setRoutingKey 提出来,每次发送消息的时候重新设置;

但是我不建议这样去做,因为这样太复杂了,建议topic 和 routingkey的关系不要太复杂,可以重新再建立一个topic,保证一一对应

  • 我也是相同的问题,如果做到exchange和queue一对一,那局限性太大了,完全将routingkey完全就没了作用,应该把回调函数单独拎出来和队列进行绑定,因为一个队列代表了一种业务,一种业务代表了相同的回调函数,但目前还没想到该怎么实现

    2026-05-05 20:30:08
  • 对于rabbitmq来说发送者只关心exchange,consumer关心队列,所以跟队列绑定好像不容易实现

    那就消息进行绑定,在回调里调用消息的方法,

    message.callback(Runable run)

    在发送消息的时候,利用lambda表达式将函数体传进去,

    2026-05-05 20:34:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师