申请试用
HOT
登录
注册
 
账号已存在
RabbitMQ 的延时队列和镜像队列原理与实战
阿里云栖开发者沙龙
/
发布于
/
7723
人观看
掌阅资深后端工程师、掘金小测《Redis深度历险》作者钱文品为大家介绍了RabbitMQ的延时队列和镜像队列的原理与实践,重点比较了RabbitMQ提供的消息可靠与不可靠模式,同时介绍了生产环境下如何使用RabbitMQ实现集群间消息传输。
展开查看详情

1 .RabbitMQ 特性

2 .RabbitMQ 特性 1.消息的接受者(消费者)

3 . RabbitMQ 特性 1.消息的接受者(消费者) 2. 消息的发送者(⽣产者)

4 . RabbitMQ 特性 1.消息的接受者(消费者) 2. 消息的发送者(⽣产者) 3. 消息的仓储(持久化)

5 . RabbitMQ 特性 1.消息的接受者(消费者) 2. 消息的发送者(⽣产者) 3. 消息的仓储(持久化) 4. 延后传递(堆积)

6 . RabbitMQ 特性 1.消息的接受者(消费者) 2. 消息的发送者(⽣产者) 3. 消息的仓储(持久化) 4. 延后传递(堆积) 5. 复制(⼴播)

7 . RabbitMQ 特性 1.消息的接受者(消费者) 2. 消息的发送者(⽣产者) 3. 消息的仓储(持久化) 4. 延后传递(堆积) 5. 复制(⼴播) 6. 分炼(分类路由)

8 . 消息不可靠 socket.write(msg)

9 .消息不可靠 1. ⽹络故障 2. 宕机 2. kill -9

10 . 消息可靠 1.server deliver后不删除 2. client 收到消息处理后回复ack 3. server 收到ack后删除消息 4.没收到ack消息(关闭后)重新投递

11 . 消息可靠 1.server deliver后不删除 2. client 收到消息处理后回复ack 3. server 收到ack后删除消息 4.没收到ack消息(关闭后)重新投递 5.ack丢失会导致消息重复处理 6.去重(幂等)由业务系统⾃⼰考虑

12 .Auto Ack vs Manual Ack 1.AutoAck 投后即删(no ack) 2. ⽹络故障,消息丢失 3.消费慢,投递风暴 4.缓冲区堆积,Server 写不动 5.链接被Server强制关闭

13 . Auto Ack vs Manual Ack 1. Manual Ack 善解⼈意(照顾客户端) 2. 客户端PrefetchCount 能⼒参数 3. Deliver 有限个消息 4. Ack ⼀个,Deliver ⼀个

14 .⽣产者消息可靠性 消费端的问题⽣产端也会有

15 .⽣产者消息可靠性 ⽣产的消息也会丢

16 .⽣产者消息可靠性 1. fsync ⼏百毫秒⼀次 2. Server 宕机 3. Redis AOF

17 . ⽣产者事务 1. ⽤ select 和 commit 包裹 publish 2.commit要等到fsync才返回,奇慢! 3.批量 publish

18 . ⽣产者确认 1. 等价于 消费者 ack(fsync) 2. ⽣产端需要实现消息重发机制(难) 3. 没有重发机制的confirm没什么⽤(除了降速)

19 . ⽣产者确认(重发) 1. 存内存会丢 2. 存磁盘需要fsync(⽆状态变有状态) 3.存 redis 还会遇到⽹络故障(Redis也会丢) 4.ack丢失,重发会导致消息重复

20 . 消息过期 Queue x-message-ttl 属性 回收站

21 . 死信队列 1. 延时队列 2. 过期时间⽐较死,不灵活 3.不同的过期时间需要不同的过期队列

22 . 死信队列 Retry Later(双重死信) 1. 消息处理异常 客户端reject 消息进⼊死信队列 1. 死信队列⾥消息过期重新⼊队列

23 .死信队列 演⽰

24 . 集群 1. 元信息每个节点都有 2. 队列⾥的消息只有⼀份 3. 客户端只会链接⼀个节点(负载均衡) 4. 服务端转发

25 .镜像队列

26 . 镜像队列 1. 镜像队列列是默默⽆无闻的 2. ha-mode=all|exactly|nodes 3. ha-params=n/2+1 4. x-queue-master-locator=min-master|client-local|random 5. ha-sync-mode=manual|automatic 6. ha-sync-batch-size=1000 7. ha-promote-on-shutdown=when-synced|always 8. ha-promote-on-failure=when-synced|always(v3.7.5+)

27 . 镜像队列 配置 Ram Node 对性能提升⽆益

28 .镜像队列 演⽰

29 .Game Over

5 点赞
2 收藏
2下载
确认
3秒后跳转登录页面
去登陆