为RabbitMQ队列设置消息限制

为RabbitMQ队列设置消息限制,rabbitmq,mqtt,iot,paho,pika,Rabbitmq,Mqtt,Iot,Paho,Pika,我在RabbitMQ中使用AMQP和MQTT协议。我将pica库用于AMQP,将paho库用于MQTT。当我用Pika(x-max-length)定义尾部时,我可以给出一个消息限制。但当我将paho用于MQTT时,我无法限制消息。如果我在AMQP中给队列50个消息限制,队列中的消息数将永远不会超过50。为什么不能在MQTT上执行此操作,是否有其他方法可以设置消息限制 有一个视频样本。广播者发送消息的速度很快,但由于接收者速度慢,代理中累积了太多消息。我始终希望接收最后一条消息。使用rabbit

我在RabbitMQ中使用AMQP和MQTT协议。我将pica库用于AMQP,将paho库用于MQTT。当我用Pika(x-max-length)定义尾部时,我可以给出一个消息限制。但当我将paho用于MQTT时,我无法限制消息。如果我在AMQP中给队列50个消息限制,队列中的消息数将永远不会超过50。为什么不能在MQTT上执行此操作,是否有其他方法可以设置消息限制


有一个视频样本。广播者发送消息的速度很快,但由于接收者速度慢,代理中累积了太多消息。我始终希望接收最后一条消息。

使用
rabbitmqctl
您可以使用策略直接设置队列的最大长度,而不是使用客户端库

例如:

rabbitmqctl set_policy my-pol "^one-meg$" '{"max-length-bytes":1048576}' --apply-to queues

看看官方文档。

为什么不添加您尝试过的内容?在不知道方法的情况下调试问题是很困难的,因为MQTT主题不是queues@RedowanDelowar我想使用它,因为接收消息的使用者的速率比发送者慢。@hardillb但它似乎在rabbitmq面板中打开了一个尾部。我添加了策略,但它在带有mqtt的队列中无效。@eiscan必须更改策略使用的正则表达式,使其与队列名称匹配。首先将
“^one meg$”
更改为
,这将匹配所有队列。