Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
1、部分或所有主题的RabbitMQ主题交换消息-如何构造它?_Rabbitmq_Webhooks - Fatal编程技术网

1、部分或所有主题的RabbitMQ主题交换消息-如何构造它?

1、部分或所有主题的RabbitMQ主题交换消息-如何构造它?,rabbitmq,webhooks,Rabbitmq,Webhooks,我有一条消息,需要由不同数量的队列来处理。队列处理不同的目的-电子邮件、审计、webhook处理、s3存储。每条消息都可以将任何、部分或所有这些主题作为目标。例如,我可能有以下消息: 消息1:audit.webhook 信息2:webhook 消息3:email.audit.webhook.s3 注意,虽然我演示了4个主题,但可能有100个。这可以通过主题交换来处理吗?例如,将使用topic.webhook。错过留言2?我可以向队列webhook.*.webhook添加三个主题吗。和*.we

我有一条消息,需要由不同数量的队列来处理。队列处理不同的目的-电子邮件、审计、webhook处理、s3存储。每条消息都可以将任何、部分或所有这些主题作为目标。例如,我可能有以下消息:

  • 消息1:audit.webhook
  • 信息2:webhook
  • 消息3:email.audit.webhook.s3
注意,虽然我演示了4个主题,但可能有100个。这可以通过主题交换来处理吗?例如,将使用topic.webhook。错过留言2?我可以向队列webhook.*.webhook添加三个主题吗。和*.webhook来处理所有潜在的消息,或者我必须知道webhook将在哪里结束的确切位置-即:…webhook…*或.webhook。是否足以捕获消息1和消息3?这可以通过主题交换来处理吗?或者我是不是看错了

附加测试后编辑

看来路线并不像我希望的那样灵活。看起来,为了实现我想要实现的目标,我必须为webhook队列..*.webhook创建一个绑定,并且消息必须始终保持webhook在第四个位置,因此,作为一个示例,只发送到webhook的消息的路由键必须是“null,null,null,webhook,null,null,等等

我的测试正确吗?我这样问是因为这似乎不对。我认为有更大的灵活性,即:一种更好的方式来完成我想要完成的事情。

我认为#可能会有所帮助,因为它允许您拥有多把钥匙。例如:

webhook.#
可能相当于:

webhook.*

或介于两者之间或更长的任何内容。我以前从未试过钥匙,即:

#.webhook.#
但这应该是你调查的事情


此外,我认为通过更好地设计路由/绑定密钥可以解决您的问题。这些消息都将发送到同一个交换机,因此应该具有相同的路由密钥模式。

我一直在寻找的解决方案是#.webhook。你能推荐一个更好的设计吗?我想不出有什么可以做到这一点,因为消息分发的模式将是完全随机的(取决于客户机希望对每条消息使用哪个队列)。我要做的主要更改是为路由密钥推荐一种格式。例如,webhook总是先进行审计,然后再进行审计(如果需要的话)。所以你会有webhook、webhook.audit和webhook.audit.email.s3
#.webhook.#