当前位置:  开发笔记 > 后端 > 正文

如果某些字段值不唯一,rabbitmq drop message?

如何解决《如果某些字段值不唯一,rabbitmqdropmessage?》经验,为你挑选了1个好方法。

我正在使用带有我的webcrawler的ampq队列 - 每个爬虫实例将从队列中的消息中获取一个URL,然后将它找到的URL添加到队列中.

由于将有多个爬虫实例,每个实例都可以找到相同的URL并将其添加到队列中.

是否有内置的方法告诉rabbitmq如果知道url就丢弃消息,或检查队列是否已存在带有url的消息?



1> pinepain..:

有没有办法检查消息RabbitMQ的机制独特性.

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

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

PS:

有一个很好的解决方法来声明与唯一字段(或它的哈希)同名的队列x-max-length设置为1,因此如果队列中有未处理的消息,则重复项将丢失.但这需要大量队列与url(唯一字段 - url哈希),因此不是最好的解决方案,特别是当它消耗来自数千个具有非显而易见名称的队列的所有消息时.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有