Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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# RabbitMQ:发送到订阅服务器的控制消息_C#_Rabbitmq_Amqp - Fatal编程技术网

C# RabbitMQ:发送到订阅服务器的控制消息

C# RabbitMQ:发送到订阅服务器的控制消息,c#,rabbitmq,amqp,C#,Rabbitmq,Amqp,我正在为RabbitMQ使用基于订阅的消费者模型。所有消息都被推送到同一队列。对于所有使用者,预取计数也设置为10。队列中的消息类型不同 我想要一种机制,告诉RabbitMQ服务器在任何给定时刻只向任何消费者发送X个类型a的消息,Y个类型B的消息,Z个类型C的消息 我知道我可以通过使用三个不同的队列来保存不同类型的消息,并让所有消费者使用不同的预取计数连接到队列来实现这一点 我正在寻找一种方法,通过使用单个队列实现同样的目的,并提供RabbitMQ服务器在向消费者发送消息之前可以检查的一些条件。

我正在为RabbitMQ使用基于订阅的消费者模型。所有消息都被推送到同一队列。对于所有使用者,预取计数也设置为10。队列中的消息类型不同

我想要一种机制,告诉RabbitMQ服务器在任何给定时刻只向任何消费者发送X个类型a的消息,Y个类型B的消息,Z个类型C的消息

我知道我可以通过使用三个不同的队列来保存不同类型的消息,并让所有消费者使用不同的预取计数连接到队列来实现这一点


我正在寻找一种方法,通过使用单个队列实现同样的目的,并提供RabbitMQ服务器在向消费者发送消息之前可以检查的一些条件。

以及消息类型的确切定义?rabbit如何知道哪条消息是哪种类型的?我想在消息元数据中使用BasicProperties“type”字段,或者如果有任何其他头我可以使用,我也可以更改它。我真的认为这是不可能的。除此之外——这也违背了“队列”的本质——您希望首先处理最旧的消息,但使用您的逻辑,可以跳过消息,而选择基于其类型的另一条消息。另外,正如您自己所知,它可以(也应该)通过多个队列实现。为什么不能使用多个队列?当我看到RabbitMQ和头交换中也支持优先级队列时,我提出了这个问题。这感觉就像两者的结合,我可能是错的。我不想使用多个队列,因为我们已经有了一些基于队列深度和速率等编写的实例管理和监控逻辑。我正在寻找一个对我们现有的影响最小的选项。你是对的,rabbit开始支持优先级队列,您可以在这里看到更多信息,以及消息类型是如何定义的?rabbit如何知道哪条消息是哪种类型的?我想在消息元数据中使用BasicProperties“type”字段,或者如果有任何其他头我可以使用,我也可以更改它。我真的认为这是不可能的。除此之外——这也违背了“队列”的本质——您希望首先处理最旧的消息,但使用您的逻辑,可以跳过消息,而选择基于其类型的另一条消息。另外,正如您自己所知,它可以(也应该)通过多个队列实现。为什么不能使用多个队列?当我看到RabbitMQ和头交换中也支持优先级队列时,我提出了这个问题。这感觉就像两者的结合,我可能是错的。我不想使用多个队列,因为我们已经有了一些基于队列深度和速率等编写的实例管理和监控逻辑。我正在寻找一个对我们现有的影响最小的选项。你是对的,rabbit开始支持优先级队列,你可以在这里看到更多