PHP消息队列及应用思路
2018-03-15 18:02
253 查看
1.消息队列概念
1.1. 队列结构的中间件1.2. 消息放入后,不需立即处理
1.3. 由订阅者/消费者按顺序处理
2.队列介质
2.1. Mysql:可靠性高,易实现,速度慢2.2. redis:速度快,单条大消息包时效率低
2.3. 消息系统:专业性强、可靠、学习成本高(如RabbitMQ)
3.消息处理触发机制
3.1. 死循环方式读取:易实现,故障时无法及时恢复3.2. 定时任务:压力均分,有处理量上限
3.3. 守护进程:类似于php-fpm、php-cg、supervisor,需要shell基础
4.应用
4.1. 解耦系统 - mysql现在有订单系统和配送系统,需要使用队列消息把两个系统解耦出来
建立一个 mySql 的订单队列数据表,所有订单信息都会记录到这个订单表中,然后使用
crontab定时把商品配送出去
4.2 商城秒杀活动 - Redis 的
list消息队列:
4.2.1. 秒杀程序把请求写入Redis、(Uid,time_stamp) 微秒:microtime()
4.2.2. 检查Redis已存放的长度,超出上限直接丢弃
4.2.3. 死循环处理存入Redis的数据并入库
4.3. RabbitMQ架构和原理 官网传送门
特定:完整的实现AMQP、集群简化、持久化、跨平台
RabbitMQ使用
RabbitMQ 安装(rabbitmq-server、php-amqplib)
生产者向消息通道发送消息
消费者处理信息
PS:另外我觉得
beanstalkd服务也是不错的,它是一个高性能、轻量级的分布式内存队列系统,读者可自行了解一下。
相关文章推荐
- PHP消息队列实现及应用:消息队列概念介绍
- RabbitMQ消息队列在PHP下的应用
- PHP消息队列实现及应用:流量削峰案列(Redis的List类型实现秒杀)
- RabbitMQ消息队列在PHP下的应用
- RabbitMQ消息队列在PHP下的应用 (zhuan)
- RabbitMQ消息队列在PHP下的应用
- PHP消息队列实现及应用_慕课网学习
- RabbitMQ消息队列在PHP下的应用
- rabbitmq消息队列php实际应用
- 消息队列及PHP中的简单实现与应用
- PHP(Mysql/Redis)消息队列的介绍及应用场景案例
- 用php操作消息隊列,RabbitMQ消息队列在PHP下的应用大全
- [转]RabbitMQ消息队列在PHP下的应用
- RabbitMQ消息队列在PHP下的应用
- php消息队列的应用
- RabbitMQ消息队列在PHP下的应用
- RabbitMQ消息队列在PHP下的应用
- PHP消息队列实现及应用:队列处理订单系统和配送系统
- 用消息队列和消息应用状态表来消除分布式事务
- 如何应用.NET中的消息队列服务