如果某个字段值不唯一,rabbitmq drop消息?

如果某个字段值不唯一,rabbitmq drop消息?,rabbitmq,amqp,Rabbitmq,Amqp,我在webcrawler中使用ampq队列-每个爬虫程序实例将从队列中的消息获取一个要爬网的url,然后将找到的url添加到队列中 由于将有多个爬虫实例,每个爬虫实例可能会找到一个相同的url并将其添加到队列中 如果知道url,是否有内置方法告诉rabbitmq删除消息,或者如果已经存在具有url的消息,则检查队列?否。无法使用rabbitmq机制检查消息的唯一性 AMQP队列,尤其是RabbitMQ队列是纯FIFO队列 可能,您必须在应用程序端实现唯一性检查 附言: 有一种巧妙的解决方法,可以

我在webcrawler中使用ampq队列-每个爬虫程序实例将从队列中的消息获取一个要爬网的url,然后将找到的url添加到队列中

由于将有多个爬虫实例,每个爬虫实例可能会找到一个相同的url并将其添加到队列中


如果知道url,是否有内置方法告诉rabbitmq删除消息,或者如果已经存在具有url的消息,则检查队列?

否。无法使用rabbitmq机制检查消息的唯一性

AMQP队列,尤其是RabbitMQ队列是纯FIFO队列

可能,您必须在应用程序端实现唯一性检查

附言:

有一种巧妙的解决方法,可以声明与设置为1的唯一字段(或it哈希)同名的队列,这样,如果队列中有未处理的消息,则重复项将丢失。但这需要大量带有url的队列(唯一字段url哈希),因此不是最好的解决方案,特别是当涉及到使用来自数千个具有不明显名称的队列的所有消息时