RabbitMQ 教程
文章目录
消息中间件
消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦(降偶)、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。
基本模型: 消息发布者 --> 消息中间件 —> 消息消费者
同步调用是 A调用B后阻塞等待,此时A的后续操作是不能进行。异步调用的一种实现方式是引入MQ,A将调用信息发到消息中间件,然后B从消息中间件获取到消息内容执行。此时A不再需要等待B。
这个前提下,就可以实现异步调用,冗余存储(指可以在MQ中多存一些数据,等待B来消费,MQ可以看作是个缓冲区)、流量削峰(如果A的调用请求数量大于B的消费能力,则消息中间件可以通过冗余存储来缓冲,B可以按照以比较慢的速度来处理请求)等等功能。
安装及管理
RabbitMQ是使用Erlang开发的,所以使用RabbitMQ需要先安装Erlang运行时环境
windows安装:
RabbitMQ
-
先安装erlang并配置环境变量
配置ERLANG环境变量(这里配置的是ERLANG,不是ELANG,PDF有错):
1、配置home路径,ERLANG_HOME=E:\erl10.2
2、配置到path路径下:%ERLANG_HOME%\bin;
cmd 输入 erl
-
安装rabbitmq并配置环境变量
1、配置home路径,RABBITMQ_HOME=E:\RabbitMQ Server\rabbitmq_server\-3.7. 12
2、配置到path路径下:%RABBITMQ_HOME%\sbin;
-
激活rabbitmq_management
新开CMD,键入如下命令:
rabbitmq-plugins enable rabbitmq_management -
启动RabbitMQ服务
net start RabbitMQ
-
访问 http://localhost:15672/ 登录页的账户名密码都是guest,登陆进去就是成功了
rabbitmq启动方式有2种
1、以应用方式启动
rabbitmq-server -detached 后台启动
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 关闭
4、Rabbitmq节点管理方式
Rabbitmqctl
Linux安装
Centos 6.5 32位太老,官方支持不佳。要求换成64位,再执行以下操作
# 1)使用packagecloud的仓库来安装,最省事的方案
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
# 2)安装erlang,-y命令表示默认同意
yum install -y erlang
# 3)下载安装rabbitmq-server
#3.1 下载要用wget所以先安装wget
yum install wget
#3.2 下载<