如何在Camel AMQP URI中正确配置exchange和routingKey参数?
配置错误原因
你之前的写法无法生效核心有两个问题:
- 误用了不存在的顶层URI参数
exchangeName:对于Camel 3.4.x版本的AMQP组件,生产者场景下的Exchange名称直接对应topic类型目的地的destinationName字段,无需单独声明exchangeName参数 - 出现无效重复参数:URI中重复出现了无值的
routingKey和有值的routingKey=bbb,会触发参数解析异常
正确配置方式
生产者场景(发送消息到指定Exchange + RoutingKey)
静态配置(固定Exchange和RoutingKey)
直接按如下格式编写URI即可,示例为发往名为aaa的Exchange、RoutingKey为bbb的配置:
amqp:topic:aaa?routingKey=bbb
如果需要指定Exchange类型(如direct、fanout、headers),追加exchangeType参数即可,示例:
amqp:topic:aaa?routingKey=bbb&exchangeType=direct
动态配置(每次发送灵活指定RoutingKey)
URI只需指定Exchange名称:
amqp:topic:aaa
发送消息时添加消息头CamelAmqpRoutingKey,值为你需要使用的RoutingKey即可,该头的优先级高于URI中的静态配置。
消费者场景(监听队列并绑定到指定Exchange + RoutingKey)
如果需要让消费者自动将监听的队列绑定到目标Exchange,按如下格式配置,示例为监听队列myQueue,绑定到名为aaa的Exchange、绑定RoutingKey为bbb:
amqp:queue:myQueue?exchangeName=aaa&bindingRoutingKey=bbb
内容的提问来源于stack exchange,提问作者rajnuz
相关产品推荐
相关产品推荐

