ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
>[success]# 为什么需要消息队列 - 异步 :一个下单流程,你需要扣积分,扣优惠卷,发短信等,有些耗时又不需要立即处理的事,可以丢到队列里异步处理。 - 削峰 :按平常的流量,服务器刚好可以正常负载。偶尔推出一个优惠活动时,请求量极速上升。由于服务器 Redis,MySQL 承受能力不一样,如果请求全部接收,服务器负载不了会导致宕机。加机器嘛,需要去调整配置,活动结束后用不到了,即麻烦又浪费。这时可以将请求放到队列里,按照服务器的能力去消费。 - 解耦 :一个订单流程,需要扣积分,优惠券,发短信等调用多个接口,出现问题时不好排查。像发短信有很多地方需要用到, 如果哪天修改了短信接口参数,用到的地方都得修改。这时可以将要发送的内容放到队列里,起一个服务去消费, 统一发送短信。 ![](https://oscimg.oschina.net/oscnet/up-a7bd5635c96cb2d0a2c16e5d1fc10653a93.png) >[success] # [实战笔记 - Kafka 篇](https://www.kancloud.cn/xiaohuamao/phpapi) - 为什么需要消息队列 - ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ 对比分析 - Kafka 相关概念 -  分区、副本、消费组 - Zookeeper 上与 Kafka 相关的节点 - 偏移量的最大值,消息的存储策略 - 如何解决重复消费和数据丢失问题 - 如何确保一条消息只被一个服务消费 - 如何让一条消息被多个服务消费 - Kafka 相关命令行操作示例 - Windows 可视化工具 Kafka Tool - 生产者代码示例 - 消费者代码示例 - Kafka 相关阅读