不可以!!!
routingkey不能用于在队列里筛选msg。
rabbitmq是基于队列的,不是基于消息的,所有对消息具体内容的解析,都应该放在消费者那里。
只是你可以根据消息的来源或者其他内容,给消息分类,产生不同的queue.
然后,将queue跟不同的exchange绑定,产生routingkey(fanout不需要)。
routingkey,“路由关键字”。他只是用来找queue的。不是用来找消息的。
一致queue,和routingkey绑定,routingkey=log.metadata.aa.#,下面即使这样明确key=log.metadata.aa.a1,log.metadata.a2,也会随机消费的!!
@RabbitHandler
@RabbitListener(bindings=@QueueBinding(value=@Queue(value = MQConstant.SongRollback_Queue),exchange = @Exchange(MQConstant.SongRollback_Exchange),key = "log.metadata.aa.a1"),containerFactory="rabbitListenerContainerFactory")
public void consumeOffSongMsg(@Payload SongMessage songMessage, Message message, Channel channel) {
}