RabbitMQ 学习笔记(一):RabbitMQ的安装

写在前面

对于这种组件、工具的使用,后期尝试采用如下结构来记录
1. 安装和配置
2. 通过Java程序直接调用提供的API
3. 整合Spring
4. 整合Spring Boot

RabbitMQ安装

第一步 安装erlang语言环境

由于RabbitMQ是采用Erlang编写的,因此需要先安装该语言库,以便运行代理服务器

# wget http://erlang.org/download/otp_src_20.3.tar.gz
# tar zxvf otp_src_20.3.tar.gz
# cd otp_src_20.3
# ./otp_build autoconf
# ./configure && make && sudo make install

可能会出现报错,一般是缺少依赖,可以相应的提示安装依赖

# yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf git

安装完成后使用如下命令进入erlang的控制台,则说明成功啦

# erl

第二步 安装RabbitMQ

  1. RabbiMQ官网下载安装包
  2. 解压
tar -xvf rabbitmq-server-generic-unix-3.6.0.tar.xz

3.配置Erlang和RabbitMQ的环境

# vi /etc/profile
# set erlang environment 
export PATH=$PATH:/devhome/tools/otp_src_20.3
# set rabbitmq environment 
export PATH=$PATH:/devhome/tools/rabbitmq_server-3.7.5
# source /etc/profile
  1. 验证
cd /devhome/tools/rabbitmq_server-3.7.5/sbin
rabbitmq-server

如果出现rabbitmq的LOGO就证明安装启动成功

第三步 配置RabbitMQ

RabbitMQ的配置都采用默认值,配置文件默认是不存在的。如果需要进行特定的配置需要手动创建
1. 在${RABBITMQ_HOME}/etc/rabbitmq/目录下创建rabbitmq-env.conf,只能叫这个名字并且放在这个目录下
2. 在rabbitmq-env.conf中就可以进行一些配置,例如指定日志目录、插件目录、数据目录以及配置文件rabbimq.conf位置

# 数据存放位置
RABBITMQ_MNESIA_BASE=/devhome/tools/rabbitmq_server-3.7.5/data
# 日志目录
RABBITMQ_LOG_BASE=/devhome/tools/rabbitmq_server-3.7.5/log
# 配置文件地址
RABBITMQ_CONFIG_FILE=/devhome/tools/rabbitmq_server-3.7.5/etc/rabbitmq/rabbitmq
# 插件目录
RABBITMQ_PLUGINS_DIR=/devhome/tools/rabbitmq_server-3.7.5/plugins

3.在rabbitmq.conf可以针对mq做一些个性化配置,具体参数见官方文档

启动和关闭节点

RabbitMQ节点其实包括了RabbitMQ应用程序和其所在的Erlang节点,如下图

Erlang节点

之前采用./rabbitmq-server(后台启动:./rabbitmq-server -detached)命令时,实际上是启动了Erlang节点RabbitMQ应用程序

rabbitmqctl方式
1. ./rabbitmqctl stop 关闭Erlang节点和RabbitMQ应用程序
2. ./rabbitmqctl stop_app 只关闭RabbitMQ应用程序
3. ./rabbitmqctl start_app 只启动RabbitMQ应用程序

rabbitmqctl 工具使用和Web管理界面

rabbitmq自带有一个很强大的工具:rabbitmqctl,除了前面使用的启动和关闭的功能之外,还有一系列的管理功能,使用如下命令可以查看其所有的功能,这里只截取了一部分命令

cd /devhome/tools/rabbitmq_server-3.7.5/sbin
rabbitmqctl

rabbitmqctl命令集

例如:查看所有的队列

rabbitmqctl list_queues

此外,为了管理的更方便,可以安装RabbitMQ的可视化管理插件

cd /devhome/tools/rabbitmq_server-3.7.5/sbin
rabbitmq-plugins enable rabbitmq_management

这个插件提供了如下功能:
1. 一个可视化的管理界面:http://server-name:15672/
2. 提供一系列HTTP API及文档说明:http://server-name:15672/api/
3. 提供rabbitmqadmin客户端的下载:http://server-name:15672/cli/

访问http://server-name:15672/如果出现如下界面则说明成功,如果在虚拟机中安装则需要关闭防火墙

guest账户登录

上图使用的默认账号guest/guest登录出错,根据错误提示:guest只能在http://localhost:15672/访问的时候登录,因为这里是通过本机访问虚拟机,所以要进行修改,这里采用的修改方式是新建一个用于远程登录的账号,这里就要用到上面的rabbitmqctl工具了。

解决远程登录Web管理界面的问题
1. 新建用户

 rabbitmqctl add_user <username> <password>

2.设置用户权限,然后就可以使用新建的用户远程登陆了。

rabbitmqctl set_user_tags <username> <tag>

具体的权限如下:

Tag Capabilities
(None) No access to the management plugin
management Anything the user could do via AMQP plus:List virtual hosts to which they can log in via AMQPView all queues, exchanges and bindings in “their” virtual hostsView and close their own channels and connectionsView “global” statistics covering all their virtual hosts, including activity by other users within them
policymaker Everything “management” can plus:View, create and delete policies and parameters for virtual hosts to which they can log in via AMQP
monitoring Everything “management” can plus:List all virtual hosts, including ones they could not log in to via AMQPView other users’s connections and channelsView node-level data such as memory use and clusteringView truly global statistics for all virtual hosts
administrator Everything “policymaker” and “monitoring” can plus:Create and delete virtual hostsView, create and delete usersView, create and delete permissionsClose other users’s connections

后面的章节会频繁使用到这两个工具,如果由兴趣可以深入了解。

猜你喜欢

转载自blog.csdn.net/aimomo007/article/details/80667830