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源,当然也同样可以安装最新版:

  1. 手动添加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
  2. 新建/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过来,出处如下:

  3. 手动安装指定版本,如:

    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的管理和使用。
最后再强调一下:以官方文档为准,多看官方文档!