MQ消息队列
2021-04-16 10:05:40 18 举报
AI智能生成
MQ消息队列
作者其他创作
大纲/内容
技术选型
rabbitMQ
AMQP协议
组成
Exchange
用于接收生产者消息并投递不同的服务器队列中;交换机根据不同的routingKey投递到不同队列
direct完全匹配
fanout全部投递
topic模式匹配
queue存储数据使用的队列
routingkey路由键
kafaka
队列=topic
多个broker集群
partition多个分区
分区顺序写入
冗余多个分区数据
天然分布式
为什么快
顺序读写
零拷贝
正常:磁盘文件-》操作系统内核-》用户内存-》socket内存-》网卡内存
零拷贝:磁盘文件-》操作系统内核-》网卡buffer
压缩及批量获取
多个分区并发
消费偏移量
broker里面记录每个消费者的消费偏移量
自动清除
默认清除七天数据
配置清除策略
rocketMQ
producer
broker
consumer
topic
细分队列
tag
nameServer=zk
ActiveMQ
解决方案
消息可靠性
生产者
发送成功确认机制,失败补偿重试
中间件
持久化落盘
集群部署
消费者
ack机制
重复消费问题
幂等
强依赖
根据业务唯一键落盘,重复不消费
弱依赖
redis业务键存储,重复不消费
消息顺序性
发送者保证发送顺序
一种类型一个队列存储
消费者保证消费顺序-一个消费者
乱序解决方案
接到消息查询最新数据,根据version比较
死信队列
根据订单id hash取模发送到同一队列
延迟队列实现方案
不同优先级的多个队列
消费时间段按照生效时间再扔回不同队列中
消费模式
pull 拉
服务器压力小
取决于consumer的能力
push 推
consumer有可能跟不上
针对服务器来说
应用场景
解耦
异步
削峰
ack机制
kafafa:offset
rabbitMq:ack
rocketMq:consumer_successflag
0 条评论
下一页