我想设置一个备用交换机,它可以捕获所有没有绑定到任何队列的路由键的消息。我也喜欢交换,然后创建绑定到新路由密钥的新队列,然后在那里重新发布消息。例如,如果两条消息带有路由密钥,则会带来一个' a'和' b'要交换ex_1,并且没有匹配的队列,该消息将自动转发到备用交换机ex_1_ae。我想为这些消息动态创建两个队列,以及任何将来使用这些路由密钥并绑定交换ex_1的队列。如果稍后出现另一条消息,路由密钥为' c'我想要另一个队列自动创建并绑定到ex_1。有没有人建立这样的自定义交换和/或可以指向我的方向?
我已经开始尝试自己写一个自定义交换,但我不想重新发明轮子。我还提供了一个答案,提供了一个简单的自定义交换,我可以将其用作创建我想要的自定义交换的基础。我查看了RabbitMQ的GitHub帐户中的社区交流,但这些看起来都非常复杂。我尝试使用https://github.com/thecederick/rabbitmq-arguments-to-headers-exchange作为起点,但在这个阶段我无法让它工作,所以我试图找到另一个例子,或者在最好的情况下,自定义交换正是做了什么我想要。
我试图实现这一点,因为我需要为每个单独的路由密钥设置一个隔离的订户代理。我意识到当代理订阅特定路由密钥时,可以动态创建一个队列,但在我的场景中,消息本身将触发订阅者的创建,并且当它用它的路由密钥启动多个消息时可能已经遇到过。这就是为什么我需要在第一条新消息到达交换机时动态创建的队列,而不是在订户代理开始运行时。当订户开始运行时,已经有一个队列在等待它有一个或多个待处理消息。