Django中异步方案RabbitMQ和Celery
RabbitMQ
1.生产者消费者设计模式
- 最常用的解耦方式之一,寻找中间人(broker)搭桥,保证两个业务没有直接关联。我们称这一解耦方式为:生产者消费者设计模式
总结:
生产者生成消息,缓存到消息队列中,消费者读取消息队列中的消息并执行。
2.RabbitMQ介绍
- RabbitMQ是消息队列,消息队列是消息在传输过程中保存消息的容器
- 现在主流的消息队列有:RabbitMQ、ActiveMQ、Kafka等
- RabbitMQ和ActiveMQ比较
- 系统吞吐量:RabbitMQ好于ActiveMQ
- 持久化消息:RabbitMQ和ActiveMQ都支持
- 高并发和可靠性:RabbitMQ好于ActiveMQ
- RabbitMQ和Kafka比较
- 系统吞吐量:RabbitM弱于Kafka
- 可靠性和稳定性:RabbitMQ好于Kafka
- 设计初衷:Kafka是处理日志的,是日志系统,所以并没有具备一个成熟MQ应该具备的特性。
- RabbitMQ和ActiveMQ比较
- 综合考虑:选择RabbitMQ作为消息队列
3.安装RabbitMQ
1.安装Erlang(以windows为例)
由于 RabbitMQ 是采用 Erlang 编写的,所以需要安装 Erlang 语言库。
erlang下载
download win64安装erlang
使用下载资源exe执行安装后,记录安装的目录文件夹路径,例如:D:\software\Erlang配置环境变量
计算机–>属性–>高级系统配置–>高级–>环境变量–>系统变量–>Path 追加路径 D:\software\Erlang\erl9.3\bin测试erlang是否安装成功
以管理员运行命令提示,cmd到erlang文件夹bin目录下,输入
erl
出现下图则安装成功
2.安装RabbitMQ
- 下载RabbitMQ软件,RabbirMQ下载地址,官方推荐的最新版本rabbitmq-server-3.7.7.exe