默认情况下,当我发送缺少routing_key的消息时,代理拒绝它。如何强制RabitMQ将一个发送到某个“默认”队列?例如,我有3个消费者,其密钥为“con1”,“con2”和“con4”。我发送一条带有'con3'键的消息,我需要将代理重新排队的消息发送到某个“起始”队列,该队列可以再次启动'con3'消费者并重新排队消息?
我发现这个https://github.com/tonyg/script-exchange并且我确定它对我很有帮助,但我无法安装它,因为4年前更新了存储库而且现代的伞开发工具包不支持这个旧的makefile。
答案 0 :(得分:0)
必须使用alternate exchange协议扩展名和consistent-hash exchange plugin的组合。因此,您应该声明2个交换:direct和x-consistent-hash(替换第一个)。然后,所有现有的消费者应该创建自己的队列直接交换。在这种情况下,路由密钥为“con1”,“con2”和“con4”的所有消息将直接路由到消费者,而具有其他路由密钥的消息将被重新路由到备用交换机,这可以将它们路由到某些“管理器”。 ,启动必要的处理器(消费者)。
现在不支持“script-exchange”RabbitMQ插件。