消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构,是大型分布式系统不可缺少的中间件。
RabbitMQ——Rabbit Message Queue的简写,RabbitMQ 是一个由 Erlang 语言开发的AMQP(高级消息队列协议)的开源实现。
>[danger] ## **RabbitMQ提供了可靠的消息机制、跟踪机制和灵活的消息路由,支持消息集群和分布式部署。**
**适用于排队算法、秒杀活动、消息分发、异步处理、数据同步、处理耗时任务、CQRS等应用场景!**
## **MQ使用场景**
>[success] ## **1、异步处理**
不用MQ时可能的处理流程:
:-: ![](https://img.kancloud.cn/a3/40/a340766ed7ff1f8928c2cbcc695e81a0_519x132.png)
使用MQ处理:
:-: ![](https://img.kancloud.cn/0e/3d/0e3d855ded2fcf7a3f31c4e8091598f8_570x189.png)
>[success] ## **2、 流量削峰**
:-: ![](https://img.kancloud.cn/34/33/34334698de21a225afab1ecea686e55d_436x113.png)
>[success] ## **3、应用解耦**
:-: ![](https://img.kancloud.cn/b3/d8/b3d8fa33d44da032e8308d55d7060ad8_346x179.png)
>[danger] # 推荐阅读
<i class="thumbs outline up icon"></i> [ThinkPHP 6.0企业最佳实践](https://www.kancloud.cn/zhangqi/electron-vue)
<i class="thumbs outline up icon"></i> [基于tp6 think-swoole企业最佳实践](https://www.kancloud.cn/zhangqi/think-swoole)
<i class="thumbs outline up icon"></i> [tp6 & ElasticSearch7全文检索架构](https://www.kancloud.cn/zhangqi/tp6_thinkphp6_es_es7_elasticsearch7)
*****
更多精彩内容,请关注公众号:**ThinkPHP6 企业最佳实践**
![](https://img.kancloud.cn/d3/48/d348470253ae51fff79159b8e1cc2285_258x258.png)
扫一扫 关注我们
- 消息队列中间件-前言
- RabbitMQ安装
- PHP安装rabbitmq、php-amqplib扩展
- RabbitMQ入门
- 工作队列(Work Queues)
- 发布/订阅(Publish/Subscribe)
- 直接交换机 (Direct exchange)
- 通配符交换机(Topic exchange)
- 远程调用(RPC)
- 延迟队列、死信队列
- 重试队列(可靠性投递,重试超过3次,入库告警)
- 消费幂等
- RabbitMQ + think-swoole + Redis秒杀高并发实战
- redis商品库存预减
- 秒杀请求入队,可靠性投递
- 秒杀请求出队,生成秒杀订单,减少商品库存
- 性能测试 - 单机(2核4G)2000并发,抢购100个商品