RabbitMQ安装

Posted 何波安的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ安装相关的知识,希望对你有一定的参考价值。

部署安装RabbitMQ前,先了解下基本概念:(RabbitMQ+Python入门经典] 兔子和兔子窝

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。说的笼统点是queue+socket实现


安装Erlang

在安装RabbitMQ之前,我们需要安装Erlang,官方建议使用打包版本,有三个建议的来源:
  1、使用官方生成的一个软件包(https://github.com/rabbitmq/erlang-rpm),它只提供运行RabbitMQ所需要的组件,它可能会也可能不适合运行其他基于Erlang的软件或第三方RabbitMQ插件
  2、使用Erlang官方下载一个rpm包(https://www.erlang-solutions.com/resources/download.html),这个包通常是最新的
  3、使用EPEL源来安装,这种方式安装的包并不总是最新的

这里我选择第1种方式:

vim /etc/yum.repos.d/rabbitmq-erlang.repo
    [rabbitmq-erlang]
    name=rabbitmq-erlang
    baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
    gpgcheck=1
    gpgkey=https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
    repo_gpgcheck=0
    enabled=1

yum install erlang

 

安装RabbitMQ服务器

wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.0/rabbitmq-server-3.7.0-1.el7.noarch.rpm
rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
yum install rabbitmq-server-3.7.0-1.el7.noarch.rpm

 

启动服务器

systemctl enable rabbitmq-server
systemctl start rabbitmq-server

 

配置RabbitMQ

在大多数系统上,一个节点应该能够启动并运行所有的默认值
生产环境配置后面再详解
注意:服务器设置为以系统用户rabbitmq运行 。如果更改节点数据库或日志的位置,则必须确保文件由该用户所有(并且还要更新环境变量)

 

端口访问

SELinux和类似的机制可能会阻止RabbitMQ绑定到一个端口。发生这种情况时,RabbitMQ将无法启动
防火墙可以防止节点和CLI工具相互通信。确保可以打开以下端口:
4369:epmd, RabbitMQ节点和CLI工具使用的对等发现服务
5672,5671:  由AMQP 0-9-1和1.0客户端使用
25672:     由Erlang分配用于节点间和CLI工具通信,并且从动态范围分配(AMQP端口+20000)
15672:     HTTP API客户端和rabbitmqadmin(仅当管理插件启用时)
61613,61614:STOMP客户端没有和使用TLS(只有STOMP插件已启用)
1883年,8883:(MQTT客户端没有和TLS,如果MQTT插件已启用)
15674:STOMP-over-WebSockets客户端(仅在启用了Web STOMP插件的情况下)
15675:MQTT-over-WebSockets客户端(仅在启用了Web MQTT插件的情况下)

 

默认的用户访问

默认将创建一个用户guest,密码guest。默认情况下,只有在以localhost身份连接到代理时才能使用这些凭证

 

调整系统限制

运行生产工作负载的RabbitMQ安装可能需要系统限制和内核参数调整,以便处理体面的并发连接和队列。需要调整的主要设置是打开文件的最大数量,也称为ulimit -n
许多操作系统上的默认值对于消息传递代理来说太低(例如,在几个Linux发行版上为1024)。我们建议在生产环境中为用户rabbitmq至少允许65536个文件描述符。4096对于大多数开发工作量来说应该是足够的
有两个限制操作系统内核允许的最大打开文件数(fs.file-max)和每用户限制(ulimit -n)。前者必须高于后者

fs.file-max设置

# vim /etc/sysctl.conf,添加:
    fs.file-max = 65535
# sysctl -p

每用户限制(ulimit -n)

# vim /etc/security/limits.conf
    在最后一行添加如下命令
    root soft nofile 65535
    root hard nofile 65535
    * soft nofile 65535
    * hard nofile 65535
     
# vim /etc/rc.local
    ulimit -SHn 65535 

修改rabbitmq配置

修改rabbitmq配置
    修改/etc/systemd/system/multi-user.target.wants/rabbitmq-server.service
    在[Service]中,增加LimitNOFILE=30000(具体数值根据需要)
执行systemctl daemon-reload
重启rabbitmq服务
rabbitmqctl status

 

日志

默认的情况下,日志位于/var/log/rabbitmq目录中,服务器的输出被发送到RABBITMQ_NODENAME .log文件 。其他日志数据写入RABBITMQ_NODENAME -sasl.log

 

以上是关于RabbitMQ安装的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ:Windows下RabbitMQ安装

rabbitmq 修改用户密码怎么用java代码实现

RabbitMQ安装教程

RabbitMQ系列:Windows下RabbitMQ安装及入门

Windows安装RabbitMQ

RabbitMQ-从基础到实战— Hello RabbitMQ