CentOS 7.9源码安装Rabbitmq

1. 前言

Rabbitmq是现阶段比较常用的一个消息队列服务。通过使用Rabbitmq实现了程序间的解耦,通过异步处理提高了程序的抗峰值能力。目前因为项目需要使用Rabbimtq的双机热备方案,故把实操过程整理如下,以备后用。

选择Rabbitmq作为消息中间件的原因:

  • 软件开源,免费,高性能,稳定性较高;
  • 与SpringAMQP完美整合,具有丰富的API;
  • 集群模式丰富,实现高可用。HA模式,镜像队列;

2. 基础环境

操作系统版本:Centos 7.9

操作系统主机名:region01

操作系统IP:192.168.158.11

erlang版本:erlang-24.0

Rabbitmq版本:rabbitmq-3.8.22


操作系统需要可以联网,以下操作均在可连接互联网的情况下操作。

3. 编译安装

Rabbitmq安装需要依赖erlang语言。在开始安装Rabbitmq服务以前,需要先进行erlang语言的安装。
如操作系统不能联网,请先行下载erlang、Rabbitmq的源码包。

3.1 下载erlang及Rabbitmq的源码包

在进行软件的安装以前需要先去下载对应版本的源码包。如果操作系统可以联网,请按照以下步骤操作。
如果操作系统不可以联网,请提前下载好源码包,然后上传至操作系统里。

# 提前安装相关系统依赖
[root@region01 ~]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel ncurses-devel wget xz
# 下载erlang源码包
[root@region01 ~]# cd /data/soft
[root@region01 soft]# wget http://erlang.org/download/otp_src_24.0.tar.gz
# 下载rabbitmq源码包
[root@region01 soft]# https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.22/rabbitmq-server-generic-unix-3.8.22.tar.xz
# 分别解压对应的源码包
# otp_src_24.0.tar.gz可以直接使用tar解压
# rabbitmq-server-generic-unix-3.8.22.tar.xz需要先用xz解压,然后再用tar解压
[root@region01 soft]# tar -zvxf otp_src_24.0.tar.gz
[root@region01 soft]# xz -d rabbitmq-server-generic-unix-3.8.22.tar.xz
[root@region01 soft]# tar -xvf rabbitmq-server-generic-unix-3.8.22.tar
[root@region01 soft]# ll -h
# 上述命令运行完成,/data/soft目录内容如下所示

rabbitmq_code

3.2 编译安装erlang语言

编译安装以前,请确认3.1中,相关系统依赖已安装完成,否则后续操作会报错。

# 进入otp_src_24.0文件夹
[root@region01 soft]# cd otp_src_24.0
# 执行家目录配置命令
[root@region01 otp_src_24.0]# ./configure prefix=/usr/local/erlang
# 编译及安装erlang
[root@region01 otp_src_24.0]# make && make install
# 编译完成后,查看/usr/local/erlang目录结构
[root@region01 otp_src_24.0]# ll /usr/local/erlang

erlang_view

# 将erlang写入环境变量
[root@region01 otp_src_24.0]# vim ~/.bash_profile 
# 在文件中写入添加以下内容,注意位置

add_erlang_path

# 命令让环境变量生效
[root@region01 otp_src_24.0]# source ~/.bash_profile
# 检查erlang安装是否成功
[root@region01 otp_src_24.0]# erl
# 如果返回结果如下图所示,即为erlang安装成功

check_erlang

3.3 安装Rabbitmq服务

Rabbitmq服务的安装强依赖erlang语言,所以在进行以下步骤前,请确保前面的步骤都已运行正常。
Rabbitmq服务无须编译安装,解压后的目录及为Rabbit服务目录。

# 将Rabbitmq服务目录挪到/usr/local/下
[root@region01 ~]# mv /data/soft/rabbitmq_server-3.8.22 /usr/local/
# 将文件目录名更改为rabbitmq
[root@region01 ~]# cd /usr/local/
[root@region01 local]# mv rabbitmq_server-3.8.22 rabbitmq
# 查看/usr/local/rabbitmq目录内容
[root@region01 local]# ls /usr/local/rabbitmq/

rabbitmq_view

# 将Rabbitmq相关命令写入环境变量
[root@region01 local]# vim ~/.bash_profile
# 添加完成后运行命领令,是环境变量生效
[root@region01 local]# source ~/.bash_profile 
# 注意添加位置

add_rabbitmq_path

# 后台启动rabbitmq-server
[root@region01 ~]# rabbitmq-server -detached
# 检查端口25672,如存在证明该服务已启动
[root@region01 ~]# ss -tnlp|grep 5672

check_rabbitmq_server
注意此时rabbitmq仍为提供消息队列服务,只有等start_app了才会正常提供服务

# 添加rabbitmq浏览器管理插件
[root@region01 ~]# rabbitmq-plugins enable rabbitmq_management

# rabbitmq服务里面会预置账户guest,默认密码guest,guest用户只能在服务器本地登录。
# 所以需要单独添加远程管理的用户,即浏览器登录用户。
# 添加远程管理用户,用户名admin,密码123456
[root@region01 ~]# rabbitmqctl add_user admin 123456
# 为admin用户添加administrator角色
[root@region01 ~]# rabbitmqctl set_user_tags admin administrator
# 设置admin用户权限,允许访问vhost及read/write
[root@region01 ~]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
# 检查上述操作是否成功
[root@region01 ~]# rabbitmqctl list_permissions -p /
# 检查用户列表
[root@region01 ~]# rabbitmqctl list_users

check_rabbitmq_user

# 启动消息队列服务
[root@region01 ~]# rabbitmqctl start_app
# 检查端口5672,如存在证明服务已启动
[root@region01 ~]# ss -tnlp|grep 5672
# 其中15672即为浏览器管理端口

check_rabbitmq_app
登录Rabbitmq浏览器管理界面查看服务状态
managment_view
managment_list
如图所示,列表中服务状态为绿色代表rabbitmq服务状态正常。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值