消息队列(MQ)
一、作用
1、解耦(订单支付成功,减库存,加积分...)
2、异步处理,提高吞吐量
3、流量削峰
4、延迟处理(限时订单)
5、持久化
......
二、Rabbit
1、工作模式
①、简单模式 :一个生产者对应一个消费者
②、工作模式:一个生产者对应多个消费者
③、订阅模式:通过broker服务器发送信息到交换机,交换机在进行分发
④、路由模式:例如信息的分发,公司有多个职位,领导跟员工的权限肯定不一样,这时就可以使用路由模式
⑤、主题模式:相对路由的精准匹配,主题模式有点像模糊查询
⑥、RPC模式:客户端请求服务端,服务端处理完数据再返回给客户端
2、使用rabbit产生的问题
1、如何保证消息的可靠性?
①、生产者丢失消息
1.Transaction模式
2.confirm机制
②、消费者丢失信息
ACK确认机制
③、如何避免重复消费?
幂等性
2、消息堆积问题的解决方案?
①、队列上绑定多个消费者,提高消费速度
②、使用惰性队列,可以在mq中保存更多消息
三、Rocket
四、Kafka
五、总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端