一、消息队列
概念
什么是MQ(消息队列)
中文名字为消息队列,是程序与程序之间通信的方法。
为什么要使用MQ(消息队列)
在实际开发中,我们可以将一些无需实时放回且耗时的操作提取出来,进行异步操作,节省了服务器的响应时间,从而提高了系统的吞吐量。
MQ(消息队列)的使用场景:
- 任务异步处理
将不需要同步处理且耗时的操作提取出来,节约系统的响应时间; - 解程序耦合
MQ相当于一个中介,生产方通过MQ和消费方交互,进行解耦合;
MQ(消息队列)的产品(部分):
RabbitMQ:基于erlang语言
Kafka:分布式消息系统,高吞吐量 用于大数据场合
zeroMQ
二、安装及配置RabbitMQ
见资源文件 内含软件、PDF安装指导文件
点击下载配套资料
大致步骤:
- 安装erlang
- 安装RabbitMQ
- 安装RabbitMQ图形化界面插件
- 打开浏览器访问网站 http://localhost:15672
- 进入登录页面,默认账号和密码都为guest
- 创建管理用户
- 创建虚拟主机Virtual Hosts
注:如使用默认 用户 4、5 步可省略
三、搭建RabbitMQ工程
1、简单模式:
生产者发送消息到队列中,消费中从队列中接收消息,在RabbitMQ中,消费者只能从队列中接收消息。
2、工作队列模式:
同一条消息只能被一个消费者接收,可以在处理较耗时的任务时,创建一个队列来提高性能。
3、订阅模式
订阅模式与前面的两种模式比较:多了一个角色Exchange交换机,接收生产者发送的消息并决定如何投递消息到其绑定的队列;消息的投递决定于交换机的类型。交换机只做消息转发,自身不存储数据。
交换机类型:广播(fanout)、定向(direct)、通配符(topic)
4、发布订阅模式
一个消息可以被多个消费者接收,其实是使用了 订阅模式,交换机类型为 广播(fanout),一个消息可以被多个消费者接收,但是一个队列只能被一个消费者监听