RabbitMQ

2024-01-09 19:18:54

异步发送/数据同步/分布式事务/削峰填谷

消息丢失

? ?生产者确认机制: 及时重发/记录日志/保存数据库定时重发

? ?消息持久化:交换机/队列/消息持久化

? ? ? 默认内存储存消息,开启持久化功能可以确保缓存在MQ消息不丢失

? ?消费者确认

? ? ? 处理消息后ack回执,manual手动/auto自动/none关闭

? ?消费者retry机制,消费者异常本地重试n次,仍然失败将消息投递到异常交换机,人工

重复消费:

? ? 网络抖动/消费者挂了

? ? ? ?唯一标识/幂等(分布式锁/数据库锁)

延迟队列:进入队列的消息被延迟消费?

? ? ?超时订单/限时优惠(当天签到)/定时发布(当天推送消息)

? ? 死信交换机+TTL

? ?死信交换机(dead-letter-exchange=dl.direct属性)

? ? ?消费者用basic.reject和basic.nack声明消费失败,且消费的requeue参数=false

? ? ?消息过期超时无人消费

? ? ?要投递的队列消息堆积满了,最早的消息可能成为死信

?ttl :消息ttl结束仍未消费,死信(队列)

? ? 队列/消息本身 设置了存活时间;短的时间设置为准

? 延迟队列插件

消息堆积:

? ?增加消费者

? 消费者内部开启线程池加快处理速度(服务器cpu资源)

??扩大队列容积,提高堆积上限

? ? ?惰性队列:x-queue-mode=lazy数据储存在磁盘,消费时才从磁盘中读取到内存,百万条数据储存,性能稳定,受限于磁盘IO,时效性低

高可用机制:

? 普通集群:标准 节点共享部分数据:交换机/队列元信息? ?

? 镜像集群:主从,交换机 队列 队列中消息在各节点间同步备份

? ? ? 创建队列的节点为该队列的主节点,备份到其他节点(镜像节点)

? ? ? ?一个队列的主节点可能是另一个队列的镜像节点

? ? ? 主宕机后镜像节点代替新的主

? 仲裁队列3.8开始 ,主从模式 支持数据强同步raft协议

? ?

文章来源:https://blog.csdn.net/ma15732625261/article/details/134372760
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。