如何解决消费者异常rabbitmq公共交通的重新排队
我有一个消费者去 Redis 保存一些数据
场景是这样的:
- 已收到发布订单
- 消费者收到订单
- 在 Redis 上保持这个顺序
当Redis服务器离线并且我尝试在其中持久化一些数据时,它会在消费者中抛出异常(RedisException),当发生这种情况时,我想重新排队消息以保持订单到达的顺序,并且继续消费消息直到成功
解决方法
这种类型的消息排序会限制消费者吞吐量,因为您本质上必须将 PrefetchCount
指定为 1
,并且您的消费者的一个实例正在运行。您可以在 MassTransit 上使用重试策略来重试错误,并且可以在超出错误限制阈值时使用新的 Kill Switch 停止端点。
虽然您可以重新配置 MassTransit 的错误管道以将消息 NACK 返回给 RabbitMQ,但它没有任何价值,因为它只会直接传送回消费者,但您可以通过错误管道配置来完成。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。