返回

RabbitMQ VPS 主机,预装好

在 VPS 上托管 RabbitMQ,可以让消息队列独占一台服务器,并拥有 root 权限。下单后,RabbitMQ 4 会自行安装,管理界面通过 HTTPS 打开,AMQP 监听 5672 端口,地址、登录名和密码显示在面板中。您可以在界面或代码中声明队列,并用连接字符串连接您的应用。

您需要多大算力?

合计$6.89/月

价格含增值税。

RAM 和 CPU 可随时升级或降配。磁盘只能增大,建议从小配置开始。

您的 RabbitMQ 服务器上安装什么?

  • 来自官方 Docker 镜像 Alpine 构建、带管理界面的 RabbitMQ 4,安装时取最新的 4.x 版本
  • 管理界面通过 Caddy 在 sslip.io 地址上提供 HTTPS,所以域名是可选的
  • 开放 5672 端口供 AMQP 连接使用
  • 管理员账号名为 yonetici 而不是 guest,密码自动生成
  • 队列数据保存在 rabbit_veri Docker 存储卷中
  • Compose 文件位于 /opt/seturack/rabbitmq/compose.yaml
  • 防火墙只开放 22、80、443 和 5672 端口

RabbitMQ 需要多大的配置?

RabbitMQ 的生产环境清单要求每个节点至少 4 GiB RAM 和 4 个核心,并说明 RabbitMQ 不是为单核环境设计的。请把最小的 2 GB 配置当作开发和测试规格,生产环境请选 4 GB 并增加 CPU。内存使用超过 RAM 的 60% 后,发布方会被限流,持久化消息也会占用磁盘。RAM、CPU 和磁盘可以在面板中分别扩大,您的数据和 IP 地址保持不变。

用途配置价格选择
入门 4 GB RAM · 2 vCore · 60 GB NVMe $6.89/月
中等 8 GB RAM · 4 vCore · 120 GB NVMe $13.62/月
强劲 16 GB RAM · 8 vCore · 200 GB NVMe $25.15/月

适合谁?

  • 想把后台任务从网站应用中分离出来的团队
  • 为服务之间搭建消息通信的开发者
  • 使用 Celery、Spring AMQP 或 amqplib 的项目
  • 想在开发和测试中使用真正队列的人

下单之后会发生什么?

  1. 设定配置并完成付款。
  2. 服务器启动后,RabbitMQ 会自行安装。在我们的真实服务器测试中大约需要 8 分钟。
  3. 在“概览”标签页,“面板地址”一行的链接会打开管理界面。输入“登录名”和“密码”两行的信息。
  4. 连接您的应用:amqp://yonetici:PASSWORD@IP:5672/%2f
  5. 在 Admin 标签页中,为您的应用单独创建一个用户和一个虚拟主机(vhost)。

每台服务器都包含

  • 价格含每日备份
  • 不限流量
  • 完整 root 权限
  • 之后可升级或降配 RAM 和 CPU,并扩大磁盘
  • 位置:Istanbul · IST-1。

须知

  • 5672 端口没有 TLS 且对互联网开放,而 Docker 发布了该端口,所以 ufw 无法关闭它。要限制访问,请把 compose.yaml 中的端口行改为 127.0.0.1:5672:5672,运行 docker compose up -d,再通过 SSH 隧道连接。
  • 可用磁盘空间下限默认为 50 MB,官方文档认为这只适合开发使用。生产环境请调高 disk_free_limit。
  • 超过内存或磁盘限制后,发布消息的连接会被阻塞。等消费者取走消息后,告警解除,流量就会恢复。
  • 镜像跟随 4-management-alpine 标签,但不会自动更新。要用更新的 4.x 版本,请在该文件夹中运行 docker compose pull 和 docker compose up -d。

RabbitMQ 常见问题

如何连接我的 RabbitMQ 服务器?

您的连接字符串是 amqp://yonetici:PASSWORD@IP:5672/%2f。末尾的 %2f 代表默认虚拟主机 /。RabbitMQ 的 URI 规范规定,末尾单独的 / 表示空名称。IP 和密码在您的面板中,把这个字符串交给您的客户端库即可。

RabbitMQ 需要多少 RAM?

RabbitMQ 官方的生产环境清单要求每个节点至少 4 GiB RAM 和 4 个核心。开发和测试时,可以从 2 GB 起步。

如何打开 RabbitMQ 管理界面?

面板中的“面板地址”链接会通过 HTTPS 打开它。登录名是 yonetici,密码在您的面板中。在界面里可以创建队列、交换机、用户和虚拟主机,也可以收发测试消息。15672 端口不对外开放。

RabbitMQ 的 AMQP 连接是加密的吗?

本次安装中 RabbitMQ 的 5672 端口没有 TLS,所以密码和消息以明文传输。通过互联网传输敏感数据时,请使用 SSH 隧道,或者用您自己的证书在 5671 端口设置 TLS 监听并发布该端口。

为什么我的 RabbitMQ 发布方被阻塞?

当内存使用超过 RAM 的 60%,或可用磁盘空间低于限制时,RabbitMQ 会阻塞发布消息的连接。消费者取走消息后告警会解除。您可以在管理界面的 Overview 页面查看状态,如果经常发生,请升级服务器配置。

可以为我的应用单独创建一个 RabbitMQ 用户吗?

可以。在界面的 Admin 标签页添加虚拟主机和用户,并授予权限。若用命令行,请在 /opt/seturack/rabbitmq 中运行 docker compose exec rabbitmq rabbitmqctl add_user NAME PASSWORD。新用户获得权限之前无法连接。

了解更多,查看类似应用