老师,如何来创建一个RabbitMq的错误队列呢?
来源:9-8 编码实战: 异步转移文件测试+小结

小明鸭小明
2020-03-17
TransExchange:uploadserver.trans
TransOSSQueue:uploadserver.trans.oss.err
那么我该如何绑定RoutingKey呢?是将队列和oss绑定还是和oss.err或者是直接用err绑定呢?
理论上来说应该错误的消息是可以被两个队列接受到的,但是因为err所以被从主队列扔到了错误队列中
写回答
1回答
-
同学你好,关于BindingKey (个人认为在生产者端发送时称谓用RoutingKey更合适一点),你可以自定义任何一个名称,比如key1, 然后将exchange和queue绑定起来。那么下次生产者在发送消息时,需要指定一个RoutingKey和Exchange。这个RoutingKey是想对于消息路由规则来说的,它将与BindingKey进行比较。至于相比较的规则,需要根据当前这个Queue是direct/fanout/topic模式中的哪一种,再决定消息的路由走向的,这个在课程里面有提到哈。
举个例子,当前的exchange和queue分别是:
TransExchange:uploadserver.trans TransOSSQueue:uploadserver.trans.oss.err
queue是direct模式的,而两者之间的bindingkey是oss.err (也可以定义成其他的值);
当生产者发送消息时,如果指定了exchange=uploadserver.trans, routingkey=oss.err, 那么消息就会转发到这个队列上;
如果指定了exchange=uploadserver.trans, routingkey=something-else, 那么消息就不会转发到这个队列上。
012020-03-20
相似问题