15_消息队列
2021-08-29 08:53:24 26 举报
AI智能生成
消息队列,知识梳理
作者其他创作
大纲/内容
RocketMQ
核心工作原理
架构原理
集群化部署
海量消息分布式存储
高可用:主从架构
数据路由:NameServer
NameServer
Peer集群化部署
Broker无差别注册机制
客户端路由机制
Broker长连接与心跳感知
Broker
Master-Slave同步机制
读写分离机制
Master/Slave宕机后的处理
Dledger主从自动切换
生产者、消费者
生产部署方案
生产压测方案
消息发送/消费模式
消息发送模式
同步发送:生产者发送消息,同步阻塞等待返回结果;适合可靠性高,不丢消息的场景,但是吞吐量低
异步发送:生产者发送消息,不阻塞,异步回调获取发送结果;适合吞吐量高,允许消息丢失的场景
单向发送:生产者发送消息,直接返回,不阻塞,没有返回结果;适合高吞吐量,不在意发送结果,只发送一次的场景
消息消费模式
push模式:broker主动向消费者推送消息
pull模式:消费者主动向broker发送请求拉取消息
底层工作原理
消息丢失
发送消息丢失
发送消息网络抖动
事务消息机制
重试机制
Broker消息丢失
消息没有刷入磁盘
磁盘损坏
同步刷盘 + Raft协议主从同步
Consumer消息丢失
自动提交offset
小心多线程处理消息,自动提交offset
手动提交offset
重复消息
生产者重复推送消息
消费者重复消费消息
幂等机制
什么是幂等
生产者推送消息阶段
业务判断法,查询MQ中是否以及有消息存在,性能很差
状态判断法,基于Redis缓存的幂等机制,无法达到100%的可靠性
其实这个阶段可以不做判断
消费者消费消息阶段
业务判断法,保证不会重复处理消息
顺序消息
事务消息
Kafka
核心工作原理
底层工作原理
为什么要用消息队列
特殊业务场景遇到技术挑战
解耦
异步
耗时操作
性能
用户体验
削峰
消息队列有什么缺点
系统可用性降低
消息队列崩溃
系统复杂性提高
消息重复消费
消息丢失
消息顺序
消息堆积
一致性问题
技术选型
收藏
收藏
0 条评论
下一页