Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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
C# 使用主题交换,我们如何防止发布者接收发布者发送的消息?_C#_Rabbitmq_Rabbitmq Exchange - Fatal编程技术网

C# 使用主题交换,我们如何防止发布者接收发布者发送的消息?

C# 使用主题交换,我们如何防止发布者接收发布者发送的消息?,c#,rabbitmq,rabbitmq-exchange,C#,Rabbitmq,Rabbitmq Exchange,我认为这是一个相当普遍的问题 我正在使用C#和Rabbit MQ客户端。我有一个出版商向交易所发送消息。发布者队列和订阅者队列都通过路由密钥绑定到exchange。当发布服务器向Exchange发送消息时,所有订户队列都会按预期接收消息,但发布服务器队列也会接收消息 有没有一种好的模式可以用来防止这种情况发生?当您发送消息时,您会给消息一个Id,通常是一个GUID。您可以跟踪您发送的消息,如果您收到的消息是您知道已发送的消息,则可以将其丢弃 然而,正如德里克所说,最好的办法就是不要这样做 当您发

我认为这是一个相当普遍的问题

我正在使用C#和Rabbit MQ客户端。我有一个出版商向交易所发送消息。发布者队列和订阅者队列都通过路由密钥绑定到exchange。当发布服务器向Exchange发送消息时,所有订户队列都会按预期接收消息,但发布服务器队列也会接收消息


有没有一种好的模式可以用来防止这种情况发生?

当您发送消息时,您会给消息一个Id,通常是一个GUID。您可以跟踪您发送的消息,如果您收到的消息是您知道已发送的消息,则可以将其丢弃


然而,正如德里克所说,最好的办法就是不要这样做

当您发送消息时,您会给消息一个Id,通常是一个GUID。您可以跟踪您发送的消息,如果您收到的消息是您知道已发送的消息,则可以将其丢弃


然而,正如德里克所说,最好的办法就是不要这样做

我知道这不是答案。。。防止这种情况发生的最好方法是避免使用现有的设计。那么,让生产者同时也是同一类型消息的消费者的目的是什么?了解这一点可能有助于更好的设计。我认为您的设计可能存在一些问题。理想情况下,发布者应该推送到一个特定的队列&订阅者应该从同一队列监听。为什么要分开排队?检查路由密钥。检查交换类型,它可能等于“扇出”。我知道这不是答案。。。防止这种情况发生的最好方法是避免使用现有的设计。那么,让生产者同时也是同一类型消息的消费者的目的是什么?了解这一点可能有助于更好的设计。我认为您的设计可能存在一些问题。理想情况下,发布者应该推送到一个特定的队列&订阅者应该从同一队列监听。为什么要分开排队?检查路由密钥。检查交换类型,它可能等于“扇出”。