For the complete documentation index, see llms.txt. This page is also available as Markdown.

RabbitMQ

概述

RabbitMQ 是实现 AMQP(高级消息队列协议,Advanced Message Queuing Protocol)的消息代理。它通过队列、主题与发布订阅机制,解耦服务并分发任务。

RabbitMQ 支持持久化队列、确认机制、集群、TLS 加密以及包括 Web 管理在内的各类插件。

RabbitMQ 可通过软件包系统在 OpenBSD 上获取。它运行于 Erlang 运行时之上,通过 TCP 通信(AMQP 默认端口 5672,管理接口可选 HTTPS 端口 15671)。

安装

安装 RabbitMQ 及其 Erlang 运行时依赖:

# pkg_add rabbitmq

此命令会安装:

  • rabbitmq-server:主守护进程

  • rabbitmqctl:管理命令行工具

  • rabbitmq-plugins:插件管理工具

  • 默认配置目录:/etc/rabbitmq/

RabbitMQ 没有可写数据目录时将拒绝运行。

服务初始化

启动 RabbitMQ 服务前须先初始化:

启用并启动服务:

检查状态:

默认情况下,守护进程监听:

  • TCP 端口 5672(AMQP)

  • TCP 端口 25672(Erlang 分布式通信,未组建集群时不使用)

配置

RabbitMQ 在 /etc/rabbitmq/ 下使用基于目录的配置。

主要有两个文件:

  • /etc/rabbitmq/rabbitmq-env.conf:shell 环境变量覆盖

  • /etc/rabbitmq/rabbitmq.conf:主配置文件(INI 风格格式)

/etc/rabbitmq/rabbitmq.conf 示例:

更改配置后重启 RabbitMQ:

用户与访问控制

创建新用户与虚拟主机:

为安全起见,禁用默认的 guest 用户:

列出用户与虚拟主机:

Web 管理插件

启用 RabbitMQ 管理界面:

此操作将暴露:

  • 端口 15672:Web 界面(HTTP)

  • 端口 15671:Web 界面(HTTPS,若配置了 TLS)

访问 http://localhost:15672,使用已创建的用户凭据登录。

创建管理员用户:

TLS 支持

启用 TLS,在 /etc/rabbitmq/rabbitmq.conf 中添加:

确保权限正确:

然后重启:

防火墙配置

若在 localhost 之外运行,在 pf.conf 中放行端口:

除非已启用 TLS,否则避免将 RabbitMQ 暴露到不可信网络。

服务管理

标准服务控制命令:

查看运行时信息:

日志

RabbitMQ 日志写入:

使用 tail -f 跟踪日志输出:

最后更新于