Last Updated on
前言
前面介绍了Ra bbitMQ基础知识与相关概念,下面就动手,进行搭建部署RabbitMQ,以及相关维护操作
安装RabbitMQ
整个安装,可参考官方文档:https://www.rabbitmq.com/download.html
此文以centos7的安装为例,官方文档:https://www.rabbitmq.com/install-rpm.html
此篇为安装rabbitmq-server单实例,集群安装和使用会在后续篇章中详细说明
安装RabbitMQ有两种方式:
- yum安装: 方便简单,易管理
- 源码安装: 比较麻烦,但是自定义强
推荐使用yum方式进行安装,方便快速,且自动解决erlang语言依赖关系,在生产环境中,需要提前下载相关rpm包放入本地yum源中。通过控制rpm包来控制rabbitmq和erlang的版本,以保证稳定。
两种方式在官方文档中,都有说明。安装前,需要了解RabbitMQ版本与Erlang版本之间的依赖关系:
详细请看官方文档:https://www.rabbitmq.com/which-erlang.html
yum安装RabbitMQ
自动安装脚本
根据官方文档,使用yum安装RabbitMQ,可以直接使用官方提供的安装脚本:
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
此脚本会直接为你添加yum源,并安装最新版的RabbitMQ Server。可以直接复制本文中的命令,也可以直接从官方文档中复制,以官方文档为准:如下:
手动设置yum源进行安装
如果你想要安装指定版本而不是最新版本。则可以通过如下方式手动添加yum源,当然也同样可以安装最新版:
-
手动添加yum源仓库密钥。
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.as rpm --import https: //packagecloud.io/rabbitmq/erlang/gpgkey rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
-
新建
/etc/yum.repo.d/rabbitmq-server.repo
文件,写入如下内容:# In /etc/yum.repos.d/rabbitmq.repo ## ## Zero dependency Erlang ## [rabbitmq_erlang] name=rabbitmq_erlang baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch repo_gpgcheck=1 gpgcheck=1 enabled=1 # PackageCloud's repository key and RabbitMQ package signing key gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [rabbitmq_erlang-source] name=rabbitmq_erlang-source baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 ## ## RabbitMQ server ## [rabbitmq_server] name=rabbitmq_server baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch repo_gpgcheck=1 gpgcheck=1 enabled=1 # PackageCloud's repository key and RabbitMQ package signing key gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [rabbitmq_server-source] name=rabbitmq_server-source baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
如上的yum源内容,直接从官方文档中copy过来,出处如下:
-
手动安装指定版本,如:
yum install rabbitmq-server-3.7.5
上面的yum配置和内容,均以官方文档为准,由于这里是centos7(centos8等其他系统也有),官方文档中对应内容在最下面:
手动源码安装
首先,推荐使用yum安装,应该方便简单,帮你自动处理了erlang语言依赖的问题。如果要通过源码安装,则需要手动编译erlang和rabbitmq-server两个项目,版本依赖则需要自行根据上面给出的版本依赖对应关系的官方文档,自行适配。
erlang源码编译安装
rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang,这里用erlang的源码进行安装,erlang安装包官网下载地址:http://erlang.org/download/
PS: 这里以erlang-24.1 + rabbitmq3.9.7 为例子
# 下载源码包
wget https://erlang.org/download/otp_src_24.1.tar.gz
# 解压
tar -zxvf otp_src_24.1.tar.gz
# 进入解压后的文件夹
cd otp_src_24.1
# 这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/erlang中,方便使用和管理。
mkdir -p /usr/local/erlang
# 在编译之前,必须安装以下依赖包
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
# 指定安装目录
./configure --prefix=/usr/local/erlang
# 编译安装
make && make install
# 安装完成后将bin目录添加到环境变量中
echo "PATH=$PATH:/usr/local/erlang/bin" >> /etc/profile
source /etc/profile
erlang安装完成后,直接收入erl,可以看到如下则安装正常:
rabbitmq 安装
安装完erlang后,下面安装rabbitmq,根据版本依赖,这里安装上面说的rabbitmq-3.9.7
rabbitmq 直接使用官网通用二进制包进行安装,不用关心系统,不用自己进行编译,更方便。
# 下载通用二进制包,官网:https://www.rabbitmq.com/install-generic-unix.html
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.7/rabbitmq-server-generic-unix-3.9.7.tar.xz
# 解压
tar -xvf rabbitmq-server-generic-unix-3.9.7.tar.xz -C /usr/local/
# 添加环境变量
echo "PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin" >> /etc/profile
# 重载一下环境变量
source /etc/profile
# 添加web管理插件
rabbitmq-plugins enable rabbitmq_management
到此,rabbitmq-server就安装好了,然后就时需要启动。
但是rabbitmq是没有默认配置文件的,需要去官方github上,复制一个配置文件模版过来。github地址:https://github.com/rabbitmq/rabbitmq-server/blob/v3.9.x/deps/rabbit/docs/rabbitmq.conf.example
此地址从官网文档中获取,在通用二进制包下载的官方文档中,有说明需要自己创建配置文件:
点击后,会进入配置说明的文档,然后可以找到示例配置文件的地址 :
然后,在github的页面中,选择你安装的版本,我这里是3.9.7:
将这个示例配置文件的内容,复制下来,写入到/usr/local/rabbitmq_server-3.9.7/etc/rabbitmq/
下。
然后就可以启动服务了,其实没有配置文件也是可以启动服务的:
rabbitmq-server -detached
到此,单机版rabbitmq-server服务就安装完成了
简单使用说明
rabbitmq-server安装启动完成后,则默认会监听两个端口:
- 5672:消息队列主服务端口,用于连接rabbitmq进行消息的发送和消费
- 15672:web管理页面端口,用于在页面上对rabbitmq-server进行管理
登陆Web控制台
rabbitmq的web管理端比较好用,基本什么功能都有。启动服务后,访问对应15672端口,可以看到如下登陆界面:
默认用户guest,管理员权限:用户: guest 密码:guest
PS:默认的guest用户,只可以用于本机访问登陆,如果要在别的机器上访问登陆Web管理端,会报错:User can only log in via localhost。需要新建一个有权限的用户。这就要涉及到rabbitmq的用户和权限管理,这个在后续文章中再详细说明。这里给出另一种方式进行登陆。
可以通过修改配置文件rabbitmq.conf,取消guest用户的只允许本地登陆的限制: loopback_users
这个项就是控制访问的,如果只是取消guest用户的话,只需要设置loopback_users.guest = false
即可。如图:
然后就可以登陆web控制台了,控制台功能使用,在后续文章说道相关内容时,会再详细说明,先能用就行了。
服务简单管理命令
rabbitmq提供了rabbitmqctl
命令行工具,用于管理rabbitmq,下面列举一下基础的常用的简单命令:
- 服务启动与停止
- 启动:rabbitmq-server -detached (yum安装的,则直接使用systemctl命令进行服务的启停即可)
- 停止:rabbitmqctl shutdown
- 插件管理
- 插件列表:rabbitmq-plugins list
- 启用插件:rabbitmq-plugins enable XXX (XXX为插件名)
- 停用插件:rabbitmq-plugins disable XXX (XXX为插件名)
PS:当然,手动安装的rabbitmq-server,也可以通过centos的服务管理,自行制作成服务,通过systemctl命令管理启停和保活
结尾
Rabbitmq-server的单机实例的安装就到这里了,安装完成后,下一篇,我们来详细了解一下rabbitmq的管理和使用。
最后再强调一下:以官方文档为准,多看官方文档!