Erlang 是否有人构建了自定义RabbitMQ交换,为未绑定的路由密钥创建队列?

Erlang 是否有人构建了自定义RabbitMQ交换,为未绑定的路由密钥创建队列?,erlang,rabbitmq,Erlang,Rabbitmq,我想设置一个备用Exchange,它捕获所有带有路由密钥的邮件,这些密钥没有绑定到任何队列。我还希望exchange随后创建一个绑定到新路由密钥的新队列,然后在那里重新发布消息。例如,如果两封邮件到达exchange ex_1时带有路由键“a”和“b”,并且没有匹配的队列,则该邮件将自动转发到备用exchange ex_1_ae。然后,我希望为这些消息动态创建两个队列,以及使用这些路由密钥并绑定到exchange ex_1的任何未来消息。如果稍后出现另一条消息,且路由密钥为“c”,我希望自动创建

我想设置一个备用Exchange,它捕获所有带有路由密钥的邮件,这些密钥没有绑定到任何队列。我还希望exchange随后创建一个绑定到新路由密钥的新队列,然后在那里重新发布消息。例如,如果两封邮件到达exchange ex_1时带有路由键“a”和“b”,并且没有匹配的队列,则该邮件将自动转发到备用exchange ex_1_ae。然后,我希望为这些消息动态创建两个队列,以及使用这些路由密钥并绑定到exchange ex_1的任何未来消息。如果稍后出现另一条消息,且路由密钥为“c”,我希望自动创建另一个队列并绑定到ex_1。是否有人构建了这样一个自定义交换和/或可以为我指明源代码的方向

我已经开始尝试自己编写一个自定义交换,但我不想重新发明轮子。我还想给出一个答案,它提供了一个简单的自定义交换,我可以用它作为创建我想要的自定义交换的基础。我已经查看了RabbitMQ的GitHub帐户中的社区交换,但这些看起来都非常复杂。我尝试使用它作为起点,但在这个阶段,我很难让它正常工作,因此我尝试寻找另一个示例,或者在最好的情况下,找到一个完全符合我需要的自定义交换


我试图实现这一点,因为我需要为每个单独的路由密钥提供一个独立的订户代理。我意识到,当代理使用特定的路由密钥订阅时,可以动态创建一个队列,但在我的场景中,消息本身将触发订阅方的创建,并且当它启动多个具有其路由密钥的消息时,可能已经遇到了。这就是为什么我需要在第一条新消息到达exchange时动态创建队列,而不是在订户代理开始运行时。当订阅服务器开始运行时,已经有一个队列在等待它,其中包含一条或多条挂起的消息。

我不明白您为什么需要自定义exchange。您只需配置一个exchange,然后绑定一个队列,在那里您将拥有所有未路由的邮件。@Gabriele+1注释,我的想法exactly@Gabriele我需要为每个路由密钥动态创建一个队列。也就是说,如果两封邮件到达时带有路由键“a”和“b”,我希望在初始交换中自动添加两个队列,然后这些队列将处理这些邮件,以及将来带有这些键的任何队列。如果一条消息到达,然后另一条消息的路由密钥为“C”,我需要自动创建第三个队列。我可以用自己选择的语言将订阅者写入一个备用队列,然后由它创建队列,但我必须管理该订阅者。我更愿意创建一个自定义exchange来完成此操作。我已更新了问题以添加此额外的说明。您可以创建一个使用者,该使用者将订阅备用exchange接收器队列,为每个路由密钥创建队列,并将其绑定到原始exchange(然后重新发布邮件).我不明白你为什么需要定制兑换。您只需配置一个exchange,然后绑定一个队列,在那里您将拥有所有未路由的邮件。@Gabriele+1注释,我的想法exactly@Gabriele我需要为每个路由密钥动态创建一个队列。也就是说,如果两封邮件到达时带有路由键“a”和“b”,我希望在初始交换中自动添加两个队列,然后这些队列将处理这些邮件,以及将来带有这些键的任何队列。如果一条消息到达,然后另一条消息的路由密钥为“C”,我需要自动创建第三个队列。我可以用自己选择的语言将订阅者写入一个备用队列,然后由它创建队列,但我必须管理该订阅者。我更愿意创建一个自定义exchange来完成此操作。我已更新了问题以添加此额外的说明。您可以创建一个使用者,该使用者将订阅备用exchange接收器队列,为每个路由密钥创建队列,并将其绑定到原始exchange(然后重新发布邮件),而不是创建自定义exchange。