>[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 相关阅读
- 技术扩展阅读
- 第一章
- 第一节 PHP与Golang 项目案例 - 留言板
- 第二节 PHP 实现日历功能
- 第三节 ThinkPHP 自定义分页模板
- 第四节 WebUpload 文件上传
- 第五节 UEditor 文本编辑器
- 第六节 ThinkPHP 验证码
- 第七节 百度地图
- 第八节 PHP 接口调试工具 SocketLog
- 第九节 PHP 跟踪调试代码 XDebug
- 第十节 PHPExcel 表格导入和导出
- 第二章
- 十一节 实战笔记 - Kafka 篇
- 十二节 实战笔记 - Redis 篇
- 十三节 实战笔记 - MySQL 篇
- 十四节 图片转ASCII码图
- 十六节 Python 视频转代码视频
- 源代码
- 代码2
- 十七节 GRPC PHP客户端