亚马逊AWS官方博客

Amazon MQ 更新 – 新的 RabbitMQ 消息代理服务

2017 年,我们推出了 Amazon MQ — 一种面向 Apache ActiveMQ 的托管消息代理服务,其也是一种备受欢迎的开源消息代理,速度快且功能丰富。它提供队列和主题、持久和非持久的订阅、基于推送和基于轮询的消息收发以及过滤。在 Amazon MQ 中,我们根据客户反馈新增了许多功能来提高可扩展性和可用性,例如纵向扩展和具有 99.9% 服务等级协议 (SLA)吞吐量经过优化的消息代理,以支持 LDAP 身份验证和授权及构建合规应用程序,例如 HIPAAISO/PCI DSSSOC 和美国商业区域中经过 FIPS 140-2 验证的终端节点

除了 ActiveMQ 之外,RabbitMQ 也是最受欢迎的开源消息代理之一,也是分布式应用程序的关键组成部分,如商品交易和订单处理软件。一些客户选择 RabbitMQ 是因为它功能丰富、积极支持社区并支持广泛的客户端和框架。但是,RabbitMQ 消息代理需要大量投资于创建和修补复杂集群部署所需的专业知识。愿意转到另一代理并迁移到托管服务的公司必须投入数周的时间来更改其应用程序。

今天,我们推出 Amazon MQ for RabbitMQ,这是一种托管消息收发服务,可减少管理 RabbitMQ 消息代理的公司的运营开销。成千上万的客户已经使用 Amazon MQ 来降低消息收发基础设施的运营开销。通过添加 RabbitMQ 来扩展 Amazon MQ 的应用程序兼容性,将更多公司从部署、扩展和操作消息代理的复杂性中解脱出来。

您可以继续使用首选的消息代理,并拥有具有成本效益的可扩展消息收发容量,同时降低运营开销。Amazon MQ 管理的是设置个人和集群消息代理所涉及的工作:从预置基础设施容量到安装消息收发软件。一旦启动并运行后,Amazon MQ 就会处理管理任务,如修补操作系统和消息收发软件。

Amazon MQ for RabbitMQ – 开始使用
要创建新的 RabbitMQ 消息代理,您可以单击 Amazon MQ 控制台中的开始使用按钮,然后选择一个代理引擎,即 ActiveMQ 或 RabbitMQ,该引擎为 AMQP 0.9.1 协议提供本机支持,具有适用于包括 Ruby、Python、Node.js、.NET 等在内的各种平台的客户端库。

在下一步中,选择 RabbitMQ 的部署模式。单一代理部署将在一个可用区中有一个代理实例,集群部署将具有一个由三个节点组成的逻辑分组,其中每个节点共享一个分布式状态、用户和队列。在集群部署中,数据以冗余方式跨多个可用区存储,以确保消息持久化。

RabbitMQ 集群支持用于需要高可用性用例的经典队列镜像。镜像队列跨多个节点复制消息。如果托管队列的主节点出现故障,镜像节点将升级为主节点,从而确保不间断可用。

在下一步中,输入代理名称并选择实例类型。您可以选择 mq.t3.micro,以通过单一实例代理部署进行符合免费套餐资格要求的基本评估。输入用户名密码以访问 RabbitMQ Web 控制台。

对于其他设置,您可以选择代理引擎版本,启用 CloudWatch Logs 将代理的日志发布到 Amazon CloudWatch,并将访问类型设置为 Virtual Private Cloud (VPC) 外部或仅在 VPC 内。如果您选择私有访问,则可以分配 VPC/子网来连接 EC2 实例和安全组,以定义对来自需要访问代理实例的所有 EC2 实例和设备的连接进行授权的规则。

单击下一步并检查您的设置,然后单击创建代理按钮,代理将在 5 到 10 分钟内创建完成并准备就绪。

您可以通过 AWS 命令行界面 (CLI) 的简单命令为集群部署创建 RabbitMQ 代理:

$ aws mq create-broker --broker-name myRabbitCluster \
        --deployment-mode CLUSTER_MULTI_AZ \
        --engine-type rabbitmq \
        --engine-version 3.8.6 \
        --host-instance-type mq.m5.large \ 
        --publicly-accessible \
        --users ConsoleAccess=true,Username=admin,Password=str0nGpass@#,Groups=admin

创建新的代理后,只需单击一下即可获得用于访问代理的 Web 控制台 URL 和终端节点:

您可以通过提供的链接来访问 RabbitMQ Web 控制台。我只是使用 Pika Python 客户端测试了这个代理:

代理会将实例、主题和队列指标发布到 CloudWatch。要了解更多信息,请参阅 Amazon MQ for Rabbit MQ 开发人员指南

现已推出!
Amazon MQ for Rabbit MQ 现已推出,您可以在当前提供 Amazon MQ 的所有区域开始使用它。有关更多信息,请参阅产品页面、此产品的定价迁移指南。请在 Amazon MQ 的 AWS 论坛或通过 AWS Support 或您的客户团队向我们发送反馈。

Channy