我有一条消息,需要由可变数量的队列处理。队列处理不同的目的 - 电子邮件,审计,webhook处理,s3存储。每条消息都可以包含任何,部分或全部主题作为目标。例如,我可以收到以下消息:
请注意,虽然我演示了4个主题,但可能有100个。这可以通过主题交换来处理吗?例如,主题 .webhook。是否会错过消息2?我可以将三个主题添加到队列webhook。*, .webhook。和* .webhook来处理所有潜在的消息,或者我是否必须知道webhook最终的位置 - 即: 。 .webhook。。。*或者 .webhook。是否足以捕获消息1和消息3?这可以通过主题交换处理,还是我看错了?
在进行额外测试后进行编辑
看来路由不像我希望的那样灵活。看来,为了做我想要实现的目标,我必须拥有例如。。*。webhook的webhook队列的绑定,并且消息总是必须保持webhook在第四个位置,所以只有webhook的消息的路由键,必须是,例如“null,null,null,webhook,null,null等
我的测试是否正确?我问,因为这似乎不对。我认为有更多的灵活性,即:一种更好的方式来完成我想要完成的任务。
答案 0 :(得分:1)
我认为#可能会有所帮助,因为它允许您拥有多个密钥。例如:
webhook.#
可以等同于:
webhook.*
或
webhook.*.*.*.*.*
或中间或更长的任何事物。我从来没有在密钥之前尝试过它:
#.webhook.#
但这应该是你调查的事情。
此外,我认为您的问题可以通过更好地设计路由/绑定密钥来解决。这些消息都进入同一个交换,因此应该具有相同的路由密钥模式。