1 简介
RabbitMQ是一个开源的免费的消息队列系统,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。它是用Erlang编写的,并实现了高级消息队列协议(AMQP)。
2 安装部署
2.1 安装EPEL存储库和Erlang
安装RabbitMQ是用Erlang语言编写的,在本教程中我们将安装最新版本的Erlang到服务器中。 Erlang在默认的YUM存储库中不可用,因此您将需要安装EPEL存储库。
运行以下命令:
#yum -y install epel-release
此步骤更新系统可不执行。
yum -y update
现在使用以下命令安装Erlang。
#yum -y install erlang socat
您现在可以使用以下命令检查Erlang版本。
#erl -version
您将得到以下输出。
root@hdc-pc ~# erl -version
Erlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
要切换到Erlang shell,可以键入以下命令。
#erl
shell将更改,您将得到以下输出。
Erlang R16B03-1 (erts-5.10.4) source async-threads:10 kernel-poll:false
Eshell V5.10.4 (abort with ^G)
1>
您可以通过按ctrl C两次退出shell。 Erlang现在安装在系统上,现在可以继续安装RabbitMQ。
2.2 安装部署RabbitMQ
RabbitMQ为预编译并可以直接安装的企业Linux系统提供RPM软件包。 唯一需要的依赖是将Erlang安装到系统中。 我们已经安装了Erlang,我们可以进一步下载RabbitMQ。
通过运行下载Erlang RPM软件包。
#wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
如果你没有安装wget ,可以运行
#yum -y install wget
您可以随时找到最新版本的RabbitMQ下载页面的链接。
通过运行导入GPG密钥:
#rpm –import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
运行RPM安装RPM包:
#rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
RabbitMQ现已安装在您的系统上。
2.3 启动和关闭RabbitMQ服务
您可以通过运行以下命令启动RabbitMQ服务器进程。
#systemctl start rabbitmq-server
要在引导时开机自动启动RabbitMQ,请运行以下命令。
#systemctl enable rabbitmq-server
要检查RabbitMQ服务器的状态,请运行:
#systemctl status rabbitmq-server
如果启动成功,您应该得到以下输出:
您可以使用以下命令关闭RabbitMQ服务器进程。
#systemctl stop rabbitmq-server
3 修改防火墙和SELinux规则
配置centos端口,AMQP端口(5672)和Web管理控制台端口(15672),运行以下命令:
#firewall-cmd --zone=public --permanent --add-port=15672/tcp
#firewall-cmd --zone=public --permanent --add-port=5672/tcp
加载防火墙配置
#firewall-cmd --reload
如果您启用SELinux,则必须运行以下命令以允许RabbitMQ服务。
#setsebool -P nis_enabled 1
4 启动和关闭Web管理控制台
启动RabbitMQ Web管理控制台,运行命令:
#rabbitmq-plugins enable rabbitmq_management
关闭RabbitMQ Web管理控制台,运行命令:
#rabbitmq-plugins disable rabbitmq_management
5 创建用户并分配权限
通过运行以下命令,将RabbitMQ文件的所有权提供给RabbitMQ用户:
#chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
现在,您将需要为RabbitMQ Web管理控制台创建管理用户。 运行以下命令相同。
//添加用户,后面两个参数为用户名(admin)、密码(your password),将管理员更改为管理员用户的首选用户名。
#rabbitmqctl add_user admin StrongPassword
//修改用户角色
#rabbitmqctl set_user_tags admin administrator
//修改用户权限
#rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”
6 访问管理控制台
要访问RabbitMQ的管理面板,请使用您最喜爱的Web浏览器并打开以下URL。
http://IP:15672/
1)您将看到以下登录页面。
2)输入用户名密码,登录后,您将看到管理信息中心。
3)您可以在仪表板的“ 管理”标签中找到用户列表,虚拟主机和策略。 您应该删除访客用户的安全注意事项。
4)您可以在“ 队列”选项卡中找到消息队列列表。 您可以通过此界面创建新队列或删除现有队列。
5)您可以在“ 连接”选项卡上找到当前连接的列表
6)同样,您可以在各自的选项卡上找到渠道和交换。
7 修改rabbitmq打开文件数量
使用上一步配置的用户登录进管理后台,可知rabbitmq默认的文件打开数是1024,这对消息中间件来说太低了。官方建议我们在正式环境至少配置65536,而在开发环境中配置到4096。
7.1 修改方法
7.1.1 官方方法
打开limits.conf
#vim /etc/systemd/system/rabbitmq-server.service.d/limits.conf
在Service 下添加 LimitNOFILE = 300000
Service
LimitNOFILE = 300000
重启服务
#service rabbitmq-server restart
7.1.2 个人成功方法
打开rabbitmq-server.service,(没办法,找不到官方说的limits.conf)
#vim /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service
同样在Service模块下,加入LimitNOFILE = 300000
Service
LimitNOFILE = 300000
重启rabbitmq,访问管理后台,发现打开文件数并没有修改成功,依旧是1024
打开 sysctl.conf
#vim /etc/sysctl.conf
添加:
fs.file-max = 65535
然后执行此命令,
#systemctl daemon-reload
#systemctl start rabbitmq-server
或者重启服务器
#reboot
再次访问管理后台,发现打开数已改为300000
特别鸣谢:
Centos7 安装最新RabbitMQ及配置
RabbitMQ安装部署