1)环境搭建参考: https://www.cnblogs.com/wuzhiyuan/p/6845230.html
一:安装RabbitMQ需要先安装Erlang语言开发包,百度网盘地址:http://pan.baidu.com/s/1jH8S2u6。直接下载地址:http://erlang.org/download/otp_win64_18.3.exe。
安装完成后需要配置环境变量:
新建系统变量:变量名 ERLANG_HOME 变量值 D:\softInstall\erl8.3(Erlang安装目录)
添加到PATH:%ERLANG_HOME%\bin;
二:安装RabbitMQ Server,百度网盘地址:http://pan.baidu.com/s/1eRLlSrg。直接下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9.exe。
安装完成后需要配置环境变量:
新建系统变量:变量名 RABBITMQ_SERVER 变量值 D:\softInstall\rabbitMQ\rabbitmq_server-3.6.9(RabbitMQ Server安装目录)
添加到PATH:%RABBITMQ_SERVER%\sbin;
三:以管理员身份运行cmd.exe,进入目录D:\softInstall\rabbitMQ\rabbitmq_server-3.6.9\sbin(RabbitMQ Server安装目录),运行cmd命令:rabbitmq-plugins.bat enable rabbitmq_management
四:以管理员身份运行cmd.exe,运行命令:net stop RabbitMQ && net start RabbitMQ。启动RabbitMQ Server,在浏览器输入地址:http://localhost:15672,输入默认账号:guest 密码:guest,就能进入RabbitMQ界面了。
至此,RabbitMQ Server安装完成。
2)使用rabbitmq
安装web管理插件
Administrator@Administrator MINGW64 /f/RabbitMQ/rabbitmq_server-3.6.9/sbin
$ ./rabbitmq-plugins.bat enable rabbitmq_management
启动mq
旧版本
Administrator@Administrator MINGW64 ~/Desktop
$ net stop RabbitMQ && net start RabbitMQ
新版本启动(双击即可)
rabbitmq-server.bat
3)web端
4)erlang和rabbitmq的版本对应
RabbitMQ Erlang Version Requirements — RabbitMQ
------------------------------------------
1)作用
1)任务异步处理
2)解耦
2)MQ的实现分类
AMQP(从协议层面不限定语言): rabbitmq
JMS(规定了一组接口): activemq、rocketmq
必须java语言
3)6种模式
简单模式(生产者发送消息到队列,一个消费者从队列中接收消息):
在RabbitMQ中消费者只能从队列中接收消息。
如果接收消息的消费者在同一个队列中由2个或多个时,消费是如何分配的?
缺点:只能一个人取,取完,其它人就取不到了。 比如:如果2个消费者。
work queues模式(多了一些消费者端,消费者之间是竞争关系,也就是接收到的消息不会重复):
场景:适合任务过重的,添加多个消费者进行处理。
public/subscribe发布与订阅模式(1个消息可以被多个消费者消费):
EXCHANGE交换机:多了一个深蓝色的部分。
交换机的作用: 接收来自生产者的消息,决定如何发送给不同的队列。
交换机的3种类型:
Fanout(广播):
特点:一个消息可以被多个消费者接收。其实是使用了订阅模式,交换机类型为:fanout广播。
Direct(定向):消息携带了一个路由key(字符串)。 队列与交换机绑定的路由key一致才会收到消息。
Topic(通配符):和定向比较像,但是可以使用通配符。 *:1个单词 #:多个单词
说明:
队列中的,只有一个消费者能消费。队列中的多个消费者,那么他们就是竞争关系。
Exchange(交换机)只转发消息,不存储消息。如果没有任何队列与Exchange绑定,或没有符合路由的队列,那么消息丢失。
Routing路由模式:
Topics通配符模式:
RPC远程调用模式(不太算MQ,我们不做介绍):
---------------------------
1.用户
2.vistual hosts: 虚拟主机
3.安装:
erlang 3.7.14
rabbitmq 20.3
安装rabbitmq的图形管理界面插件
创建管理用户
创建虚拟主机(隔离性)
4.创建自己的用户
打开Admin--》users--》各种信息
5.虚拟主机
概念:
类似于多个mysql数据库。 相当于独立的rabbitmq服务器。
exchange、queue、message不互通。
添加:
打开Admin--》Virtual Hosts--》Add virtual host--》管理用户
添加用户对应的权限:
点击:Name中的一个--》选择能访问的 虚拟机即可。
6.入门使用
1.生产者:
假设发送到的队列名字是 simple_queue。
创建连接工厂
创建连接
创建频道
声明队列
发送消息
关闭资源
2.消费者:
从队列中获取消息。 可以使用“简单模式”
路由key:simple_queue
交换机:
消息id:7
接到消息:你好,小兔子6
7.端口
5672: server的端口
15672:web管理的端口