RabbitMQ简介
RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。目前很多互联网大厂都在使用RabbitMQ。
安装环境和版本
操作系统:Centos7.8
RabbitMQ版本:3.8.5
离线下载好rpm安装包
RabbitMQ是使用erlang语言写的,所以需要先安装erlang,其次rabbitmq安装依赖于socat,所以三个安装包都需要下载。另外rabbitmq对于erlang的版本是有要求的,这个可以去官网查看;本次安装版本及包名如下:
erlang-23.0.2-1.el7.x86_64.rpm
rabbitmq-server-3.8.5-1.el7.noarch.rpm
socat-1.7.3.2-2.el7.x86_64.rpm
rabbit下载地址:www.rabbitmq.com/install-rpm…
erlang下载地址:github.com/rabbitmq/er…
socat下载地址:www.rpmfind.net/linux/rpm2h…
使用RPM安装命令安装RabbitMQ以及依赖
sudo rpm -ivh erlang-23.0.2-1.el7.x86_64.rpm
sudo rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm
sudo rpm -ivh rabbitmq-server-3.8.5-1.el7.noarch.rpm
配置数据文件和日志文件存放路径
由于我们的消息需要持久化,占用硬盘空间相对较大,避免后期因磁盘分区原因导致默认路径不够存放日志和数据,故需要修改路径,RabbitMQ默认的日志和数据存放位置如下:
1、 首先创建自定义目录
sudo mkdir -p /DATA/app/rabbitmq/mnesia
sudo mkdir -p /DATA/applog/rabbitmq/log
2、 分配文件目录权限
RabbitMQ安装成功之后,会以rabbitmq用户启动进程,所以需要把目录拥有者设置为rabbitmq。
sudo chown -R rabbitmq:rabbitmq /DATA/app/rabbitmq
sudo chown -R rabbitmq:rabbitmq /DATA/applog/rabbitmq
3、 修改配置文件
vi /etc/rabbitmq/rabbitmq-env.conf
填入以下配置
RABBITMQ_MNESIA_DIR=/DATA/app/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/DATA/applog/rabbitmq/log
4、 重新启动RabbitMQ
sudo service rabbitmq-server start
启动成功之后会显示如下信息
Redirecting to /bin/systemctl start rabbitmq-server.service
修改操作系统句柄数限制
由于RabbitMQ消息需要持久化,对磁盘的操作比较频繁。类似kafka和其他消息中间件一样,需要对最大句柄数进行调优。
1、 首先修改操作系统底层的限制
vim /etc/sysctl.conf
添加fs.file-max=655350
2、 修改limits.conf
vim /etc/security/limits.conf
添加如下配置
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
3、 最后修改rabbitmq-service的配置,然后重启RabbitMQ
vim /usr/lib/systemd/system/rabbitmq-server.service
sudo service rabbitmq-server restart #重启服务
4、 使用命令rabbitmqctl status查看配置是否生效
rabbitmqctl status
开启RabbitMO的web管理界面
直接在命令行输入如下信息即可
sudo rabbitmq-plugins enable rabbitmq_management
开启防火墙端口允许远程访问
1、 开启发送接收消息的端口5672
sudo firewall-cmd --permanent --add-port=5672/tcp
2、 开启web远程访问端口15672
sudo firewall-cmd --permanent --add-port=15672/tcp
3、 重新加载防火墙配置
sudo firewall-cmd --reload
配置用户并分配权限
添加用户和配置用户,请参考blog.csdn.net/zyz51191976…
下面是本系统中的配置
1、 添加超级管理员
sudo rabbitmqctl add_user admin admin # 设置账户密码为admin admin
sudo rabbitmqctl set_user_tags admin administrator #设置admin为管理员权限
2、 添加普通用户并分配权限
sudo rabbitmqctl add_user user1 a3XWpIZU #新建普通账号user1
sudo rabbitmqctl set_user_tags user1 management #设置user1为普通管理员
#为用户user1设置权限,资源为exchange和queue
sudo rabbitmqctl set_permissions -p / user1 'com.cares.exchange.direct|com.cares.bsm.source' '.*' '.*'