05
2020
08

RabbitMQ 配置(Centos)1

配置 RabbitMQ

在大多数系统上,节点应该能够以所有默认值启动和运行。请参阅配置指南以了解更多信息,并参阅生产检查清单,以了解开发环境以外的指导原则。

注意:节点被设置为以系统用户 rabbitmq 的身份运行。如果更改了节点数据库或日志的位置,则文件和目录必须属于此用户。

RabbitMQ节点绑定到端口(开放服务器TCP套接字),以便接受客户端和CLI工具连接。其他进程和工具(如SELinux)可能会阻止RabbitMQ绑定到端口。当发生这种情况时,节点将无法启动。

CLI工具、客户端库和RabbitMQ节点也会打开连接(客户端TCP套接字)。防火墙可以阻止节点和CLI工具彼此通信。确保可以访问以下端口:

  • 4369:epmd,RabbitMQ节点和CLI工具使用的对等发现服务

  • 5672、5671:由AMQP 0-9-1和1.0客户端使用,无TLS和带TLS

  • 25672:用于节点间和CLI工具通信(Erlang distribution server端口),从动态范围(默认限制为单个端口,计算为AMQP端口+20000)分配。除非确实需要这些端口上的外部连接(例如,群集使用联合或在子网外的计算机上使用CLI工具),否则不应公开这些端口。有关详细信息,请参阅网络指南

  • 35672-35682:由CLI工具(Erlang分发客户端端口)用于与节点通信,并从动态范围(计算为服务器分发端口+10000到服务器分发端口+10010)进行分配。有关详细信息,请参阅网络指南

  • 15672:HTTP API客户端管理UIrabbitmqadmin(仅当管理插件已启用时)

  • 61613、61614:不带TLS和带TLS的STOMP客户端(仅当启用了STOMP插件时)

  • 1883,8883:(如果启用了MQTT插件,则为不带TLS和带TLS的MQTT客户机

  • 15674:STOMP over WebSockets客户端(仅当启用了Web STOMP插件时)

  • 15675:WebSockets客户端上的MQTT(仅当启用了Web MQTT插件时)

  • 15692:普罗米修斯度量(仅当启用了Prometheus插件时)

可以将RabbitMQ配置为使用不同的端口和特定的网络接口


默认用户权限

代理使用密码 guest 创建一个用户 guest 。未配置的客户端通常会使用这些凭据。默认情况下,这些凭据只能在作为本地主机连接到代理时使用,因此您需要在从任何其他计算机连接之前执行操作

有关如何创建更多用户和删除来宾用户的信息,请参阅访问控制文档


在Linux上控制系统限制

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

这里有两个限制:操作系统内核允许的最大打开文件数( fs.file-max )和每个用户的限制(ulimit -n)。前者必须高于后者。


使用systemd(最新的Linux发行版)

在使用systemd的发行版上,操作系统限制通过位于 /etc/systemd/system/rabbitmq-server.service.d/limits.conf。例如,要将最大打开文件句柄限制(nofile)设置为64000

[Service]
LimitNOFILE=64000

请参阅systemd文档以了解支持的限制和其他指令。


Docker 模式

要配置Docker contains的内核限制,请使用Docker daemon配置文件中的“default ulimits”键。该文件必须安装在Docker主机上的 /etc/docker/daemon.json:

{
  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Hard": 64000,
      "Soft": 64000
    }
  }
}



« 上一篇