rabbitmq
RabbitMQ是一个消息代理。它的核心思想非常简单:接收并转发消息。你可以把它想象成一个邮局:当你把邮件丢进邮箱时,你非常确定邮递员先生会把它送到收件人手中。在这个比喻中,RabbitMQ就是邮箱、邮局和邮递员。
RabbitMQ和邮局的主要区别是它处理的不是纸张。它接收、存储并转发二进制数据块,也就是message,消息。
rabbitmq作用
- 应用解耦
- 流量削峰(比如秒杀)
- 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通讯方式
- 应用需要更灵活的耦合方式,如发布订阅,比如可以指定路由规则。
rabbitmq的使用场景
在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。
rabbitmq的安装
1、Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang。(在官网自行选择版本)
下载地址
我们这边一windows为例子,所以你介意选择你自己的版本,如32位的系统或者64位的系统。
2、下载rabbitmq-server-3.7.0.exe,这个可以直接去mq的官网下载
mq下载地址
然后 下载安装,在windows上面安装就跟安装平常的软件一样,一直点下一步下一步就好了。
3、配置环境变量,这一步感觉配不配置其实都可以,因为我本地就是没有配置的,但是还是没有问题的,主要是配置erl的环境,其实也是跟之前一样,将你安装的erl的路径下的配置到path里面,然后启动命令行,使用命令erl去查看配置是否成功。
4、配置mq的环境,这个配置起来之后就可以在任意地方启动mq,而不需要进入mq的安装文件夹去启动他。
5、启动mq
rabbitmq启动方式有2种:
(1)、rabbitmq-server -detached 后台启动
(2)、Rabbitmq-server 直接启动,如果你关闭窗口或者需要在改窗口使用其他命令时应用就会停止
关闭:rabbitmqctl stop
2、以服务方式启动(安装完之后在任务管理器中服务一栏能看到RabbtiMq)
rabbitmq-service install 安装服务
rabbitmq-service start 开始服务
Rabbitmq-service stop 停止服务
Rabbitmq-service enable 使服务有效
Rabbitmq-service disable 使服务无效
rabbitmq-service help 帮助
当rabbitmq-service install之后默认服务是enable的,如果这时设置服务为disable的话,rabbitmq-service start就会报错。
当rabbitmq-service start正常启动服务之后,使用disable是没有效果的
关闭:rabbitmqctl stop
3、Rabbitmq管理插件启动
rabbitmq-plugins enable rabbitmq_management 启动
rabbitmq-plugins disable rabbitmq_management 关闭
启动完成后我们可以通过localhost:15672去访问,能看到如下的界面
如果看到这个界面证明我们的mq已经启动完成了。默认账号密码是guest/guest.
登录进去是这样的界面:
可以通过这个界面能看到我们之后使用相关的东西,如频道、交换机、队列,这几个之后再说,我们主要说一下如何建立一个新用户以及VirtualHost并绑定用户。
首先我们在管理界面中进入到admin的地方
点击add a user,然后填写信息
tags表示的是用户的角色,可以直接点击下面的6种,这边我选用了第二个。然后保存。这样用户就建立成功了。
剩下的就是建立VirtualHost,其实VirtualHost可以理解为我们数据库中的库,因为我们之后写mq的代码的时候是可以指定VirtualHost,不指定默认使用的是mq默认的库,也就是/,我们这边指定一个test的VirtualHost。建立VirtualHost的地方就在我们点击admin的右边
点击他然后进入一个新的页面,可以看到如下的页面:
可以看到有一个name为/的VirtualHost,他的用户有guest,其他字段表示的是关于发收消息的(ps这个可以自己去查看详情)。我们点击add a VirtualHost,然后新增一个test的VirtualHost
我们新增完成后,可以看到一个新的VirtualHost,但是没有绑定用户,我们点击这个VirtualHost的name字段会进入下面的地方:
然后选择用户,我们这边选择用户test,点击完成,然后回到admin的首页,就可以看到如下
这样就表示我们绑定成功了。