阿里云 CentOS7搭建 RabbitMQ

RabbitMQ简介

在搭建RabbitMQ之前实现要介绍一下MQ,MQ是什么?

MQ全称是Message Queue,可以理解为消息队列的意思,简单来说就是消息以管道的方式进行传递

RabbitMQ是一个实现了AMQP(Advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用Erlang语言的

RabbitMQ有成千上万的用户,是最受欢迎的开源消息代理之一。从T-Mobile到Runtastic,RabbitMQ在全球范围内的小型初创企业和大型企业中都得到使用

RabbitMQ轻巧,易于在内部和云中部署。它支持多种消息传递协议。RabbitMQ可以部署在分布式和联合配置中,以满足大规模,高可用性的要求

RabbitMQ可在许多操作系统和云环境上运行,并为大多数流行语言提供了广泛的开发人员工具

RabbitMQ环境版本

jdkerlangrabbitmq
1.823.23.8.9

查看版本

编译安装Erlang

yum -y install make ncurses-devel gcc gcc-c++ unixODBC unixODBC-devel openssl openssl-devel kernel-devel

erlang下载地址
在这里插入图片描述

#将文件上传到根目录 并创建目录
mkdir /opt/erlang /opt/rabbitmq
#解压
tar -zxvf otp_src_23.2.tar.gz
#移动到创建的目录
mv otp_src_23.2 /opt/erlang

cd /opt/erlang/otp_src_23.2

./configure   --prefix=/usr/local/erlang --enable-smp-support --enable-threads  --enable-sctp  --enable-kernel-poll  --enable-hipe  --with-ssl

#编译安装
make && make install

#设置环境变量
vim /etc/profile

#erlang rabbitmq的环境
export ERLANG_HOME=/usr/local/erlang
export PATH=$ERLANG_HOME/bin:$PATH

#重新加载
source /etc/profile
#任意目录下
erl
#Erlang/OTP 23 [erts-11.1.4] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
#Eshell V11.1.4  (abort with ^G)
#1> halt().

进入erlang命令行表示安装成功
参数说明:
–prefix 指定安装目录 –enable-smp-support启用对称多处理支持(Symmetric Multi-Processing对称多处理结构的简称) –enable-threads启用异步线程支持 –enable-sctp启用流控制协议支持(Stream Control Transmission Protocol,流控制传输协议) –enable-kernel-poll启用Linux内核poll –enable-hipe启用高性能Erlang(High Performance Erlang) –with-ssl使用SSL包

如果提示如下错误: yum install perl

安装Socat

yum -y install epel-release
yum -y install socat

安装RabbitMQ
RabbitMQ下载地址 这里下载CentOS7的
在这里插入图片描述

#获取公共签名密钥
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
#步骤同上,移动到/opt/rabbitmq目录再安装
rpm -Uvh --nodeps rabbitmq-server-3.8.9-1.el7.noarch.rpm
#设置软路由,将erl的执行文件移到系统环境变量中 防止启动报错
ln -s /usr/local/erlang/bin/erl /usr/bin/erl

启动RabbitMQ

#添加开机启动
systemctl enable rabbitmq-server
#启动
systemctl start rabbitmq-server
#查看状态
systemctl status rabbitmq-server
#安装 RabbitMQ 的web页面
rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述

默认配置文件路径
rabbitmq默认数据目录和日志路径

1、相关命令 :/usr/lib/rabbitmq/bin/
2、相关的日志:/var/log/rabbitmq/
3、相关的配置 : /etc/rabbitmq/
4、 设置的用户权限等元数据信息:/var/lib/rabbitmq/mnesia/

RabbitMQ的配置文件
下载地址
下载保存为rabbitmq.conf
配置说明

将下载的配置文件重命名放到 /etc/rabbitmq/ 并修改,不允许guest用户的登录(为了安全还可以将guest账户删除,下面有命令),注意文件的编码环境
在这里插入图片描述

创建新的数据文件和日志文件目录并给权限

mkdir -p /data/rabbitmq/log   
mkdir -p /data/rabbitmq/mnesia       
chmod -R 755 /data/rabbitmq    
chown -R rabbitmq:rabbitmq /data/rabbitmq 

也可以再配置文件修改,路径(不做演示)

创建或者新增环境参数配置文件

vim /etc/rabbitmq/rabbitmq-env.conf
#rabbitmq 默认读取的变量
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/data/rabbitmq/log

创建管理用户

#添加用户(用户admin,密码admin)
rabbitmqctl add_user admin admin

#设置用户角色(admin为管理员)
rabbitmqctl set_user_tags admin administrator

#设置用户权限(接受来自所有Host的所有操作)
rabbitmqctl  set_permissions -p "/" admin '.*' '.*' '.*'

#查看用户权限
rabbitmqctl list_user_permissions admin

重启RabbitMQ

systemctl restart rabbitmq-server

去开放安全组 5672 (rabbitmq服务的端口),15672 (web管理页面的端口)

RabbitMQ的一些基本操作:

# 添加开机启动RabbitMQ服务
systemctl enable rabbitmq-server

#在开机时禁用服务:
systemctl disable rabbitmq-server

# 查看服务状态
systemctl status  rabbitmq-server

# 启动服务
systemctl start rabbitmq-server

# 停止服务
systemctl stop rabbitmq-server

# 查看当前所有用户
rabbitmqctl list_users

# 查看默认guest用户的权限
rabbitmqctl list_user_permissions guest

# 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户
rabbitmqctl delete_user guest

# 添加用户
rabbitmqctl add_user <username> <password>  

# 删除用户
rabbitmqctl delete_user <username>  

# 修改用户密码
rabbitmqctl change_password <username> <newpassword>  

# 清除用户密码(该用户将不能使用密码登陆,但是可以通过SASL登陆如果配置了SASL认证)
rabbitmqctl clear_password <username> 

# 设置用户tags(相当于角色,包含administrator,monitoring,policymaker,management)
rabbitmqctl set_user_tags <username> <tag>

# 创建一个vhosts
rabbitmqctl add_vhost <vhostpath>  

# 删除一个vhosts
rabbitmqctl delete_vhost <vhostpath>  

# 列出vhosts
rabbitmqctl list_vhosts [<vhostinfoitem> ...]  

# 针对一个vhosts给用户赋予相关权限;
rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>  

# 清除一个用户对vhosts的权限;
rabbitmqctl clear_permissions [-p <vhostpath>] <username>  

# 列出哪些用户可以访问该vhosts;
rabbitmqctl list_permissions [-p <vhostpath>]   

# 列出用户访问权限;
rabbitmqctl list_user_permissions <username>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值