跳至主内容
版本:4.2

在 Amazon EC2 上运行 RabbitMQ

概述

本指南假设您熟悉通用的 集群指南 以及关于 集群对等发现 的指南。

在 EC2 上使用 RabbitMQ 与在其他平台上运行它非常相似。但是,EC2 有一些需要考虑的特定方面。它们主要与主机名及其解析有关。

本指南演示手动(CLI 驱动)RabbitMQ 集群。 AWS 的对等发现插件(RabbitMQ 3.7.0 或更高版本)是更适合自动化的选项。

AMI

只要安装了 兼容版本的 Erlang/OTP,RabbitMQ 在最新的 Ubuntu、Debian 和 CentOS AMI 上都能正常工作。

选择实例类型

RabbitMQ 将在所有实例类型上运行,但有几点需要考虑

  • 使用 64 位实例。
  • 根据工作负载和设置,RabbitMQ 可能需要大量内存。请确保您的主机拥有 适量的 RAM,并始终启用至少几 GB 的交换空间。可以使用 PerfTest 模拟工作负载。有一篇关于 理解节点内存使用情况 的独立指南。
  • 只要工作负载使用 多个队列,RabbitMQ 通常会利用系统中的所有 CPU 核心。还应考虑其他因素(例如,磁盘和网络 I/O 吞吐量)。
  • 对 RabbitMQ 节点以及使用它的应用程序进行 监控,无论是实际工作负载还是模拟工作负载,都有助于评估特定实例类型的适用性。

操作系统

虽然 RabbitMQ 已在大多数主流 Linux 发行版上进行了测试,但 Ubuntu 对 Amazon EC2 的支持似乎最强,因此本指南将使用此发行版。

Ubuntu Cloud Images 提供了专门设计用于公共云的 Ubuntu 镜像(构建)。

安装

请参阅以下发行版的安装指南

可以使用各种部署工具来自动化 RabbitMQ 的部署。

是一些流行的选项。

EBS 卷上的持久化存储

在 Linux 上,RabbitMQ 将使用以下目录作为其节点数据目录

  • /var/lib/rabbitmq/ 用于存储消息或队列等持久化数据
  • /var/log/rabbitmq/ 用于存储日志

有关详细信息,请参阅 文件和目录位置

这些目录可以是到专用存储卷的符号链接。在执行符号链接之前必须停止节点。

sudo service rabbitmq-server stop

如果可能,我们建议在安装 RabbitMQ 之前执行符号链接和其他存储准备步骤。

请注意,EBS 卷具有 IOPS 限制,这可能会影响吞吐量和 RabbitMQ 操作。如果 EBS 卷达到限制,磁盘写入会变慢。RabbitMQ 消息存储压缩(磁盘数据垃圾回收)也可能跟不上磁盘写入速度,这意味着磁盘将在消息被消耗和确认后更快地被填满,而无法回收磁盘空间。这最终会导致 资源警报 和发布者节流。请确保限制值较高,并设置 I/O 操作速率监控。

其他几篇指南涵盖了在公共云中运行 RabbitMQ 集群高度相关的主题

© . This site is unofficial and not affiliated with VMware.