Vas*_*nko 4 messaging masstransit rabbitmq
我在传输层使用MassTransitwith RabbitMQ,并且面临消息重复数据删除的需要。
如果重复的消息已经排队(即使该消息正在由消费者处理),则应跳过向队列添加新消息。例如,可以通过消息内容来识别重复项。
发送DoWork1, DoWork2, DoWork3可以并行处理,但发送DoWork1, DoWork2, DoWork2- 重复应该被跳过,并且只要DoWork1, DoWork2处理过的相同消息可以排队并且不应该被认为是重复的。
解决方案1:在交换层使用“ RabbitMQ Message Deduplication Plugin ”,对我来说很理想,但不确定是否解决了描述的问题。
解决方案2:使用第三方数据存储实现自定义中间件。
对于所描述的问题,有没有更好的解决方案?
提前感谢您的帮助!
该RabbitMQ的重复数据删除插件被设计用于这一目的。
您可以在交换或队列中进行重复数据删除。主要区别在于,如果交换器先前看到过消息,则对其进行重复数据删除,而如果队列已包含该消息的副本,则对其进行重复数据删除。
发布消息时,只需将x-deduplication-header标题设置为唯一标识消息的字符串(例如其正文的 MD5 哈希)。
使用自定义中间件将使您以自己的开发为代价获得更多的行动自由。
| 归档时间: |
|
| 查看次数: |
3917 次 |
| 最近记录: |