介绍 Amazon MQ 跨区域数据复制功能,适用于 ActiveMQ 代理 计算博客

Amazon MQ 现已支持跨区域数据复制

by Pascal Vogel on 2023年12月19日 in Amazon MQ无服务器架构

关键要点

Amazon MQ 现已引入 ActiveMQ Brokers 的跨区域数据复制功能。这个功能支持构建区域冗余的消息传递应用,提升系统的弹性和灾难恢复能力。本文说明了如何在 Amazon MQ 中设置和测试跨区域 ActiveMQ 复制代理。

本文由高级软件开发工程师 Dominic Gagn 和高级解决方案架构师 Vinodh Kannan Sadayamuthu 撰写。

Amazon MQ 现在支持 ActiveMQ broker 的跨区域数据复制。此功能让您轻松构建区域冗余的消息传递应用,并简化了 ActiveMQ broker 之间的跨区域消息复制设置。本文将详细解释 Amazon MQ 中的跨区域数据复制如何运作,如何设置 ActiveMQ 的跨区域备份 broker,以及如何测试提升一个备份 broker。

Amazon MQ 是一项托管的消息代理服务,支持 Apache ActiveMQ 和 RabbitMQ,旨在简化 AWS 上的消息代理设置和操作。

跨区域复制增强了您系统的弹性和灾难恢复能力。此新的 Amazon MQ 功能使得在 AWS 区域间提高 ActiveMQ 消息系统的冗余性变得更加简单。

Amazon MQ 中 ActiveMQ 的跨区域数据复制原理

Amazon MQ 的 ActiveMQ 跨区域数据复制功能能够将主 broker 的状态从一个 AWS 区域复制到另一个区域的备份 broker。broker 状态包含了由消息生产者发送到 broker 的消息。此外,消息确认和事务也会被复制。需要注意的是,计划消息和 broker 的 XML 配置不会从主 broker 复制到备份 broker。

状态复制是异步进行的,并在后台运行。当消息发送到启用了跨区域数据复制的 broker 时,数据会同时持久存储到主数据存储和用于复制数据的队列中。备份 broker 作为此队列的客户端,消费来自主 broker 的 broker 状态数据。

在任何时刻,只有主 broker 可用于客户端连接。备份 broker 处于热备状态,被动复制主 broker 的状态,但不接受客户端连接。下图展示了一个简化版的跨区域数据复制 broker 对的架构。所有复制流量都使用 TLS 加密,并保持在 AWS 的专用网络中。

配置 Amazon MQ 的跨区域备份 Broker

要设置一个跨区域备份 broker,您的 Amazon MQ ActiveMQ 主 broker 必须满足以下资格要求:

ActiveMQ 版本 5176 或更高版本实例大小必须为 m5large 或更高启用 Active/Standby broker 部署处于 运行中 状态

如果您没有满足这些条件的 ActiveMQ broker,请参见 创建和配置 ActiveMQ broker 获取创建主 broker 的说明。

配置跨区域复制的步骤

访问 Amazon MQ 控制台 并选择 创建备份 broker。

从可用主 brokers 列表中选择一个主 broker,点击 下一步。

在 备份 broker 详情 中,选择备份 broker 的 区域 并输入 备份 broker 名称。

在 备份 broker 的 ActiveMQ 控制台用户 面板中,输入 broker 访问的 用户名 和 密码。

在 用于跨 brokers 访问的数据复制用户 面板中,输入复制用户的 用户名 和 密码。

在 附加设置 面板中,保留默认设置并选择 下一步。

审查设置并选择 创建备份 broker。 注:broker 访问类型会根据主 broker 的访问类型自动设置。

创建过程可能需要长达 25 分钟。一旦备份 broker 创建完成,通过 重启主 broker 启动主 broker 和备份 broker 之间的复制。

一旦主 broker 重启并状态为 运行中,您可以在主 broker 的 数据复制 面板中查看备份详细信息。

现在两个 broker 可以相互同步,建立跨区域的网络连接,通过该连接复制 broker 状态。一旦两个 broker 都处于 运行中 状态,主 broker 接受客户端连接,并将所有 broker 状态更改消息、确认、事务等传递给备份 broker。

备份 broker 现在异步地镜像主 broker 的状态,但在通过切换或故障转移进行提拔之前,它不会对客户端连接可用。接下来的部分将介绍这两种操作。

测试数据复制和提拔备份 Broker

提拔备份 broker 有两种方式:发起切换或故障转移。

切换故障转移 优先保证 一致性 而非可用性。 优先保证 可用性 而非一致性。 brokers 的状态 保证 相同。 brokers 的状态 不保证 相同。 brokers 可能 不可立即使用 来服务客户端流量。 备份 broker 立即 可用 来服务客户端流量。

发起故障转移或切换的步骤

访问 Amazon MQ 控制台,选择您的 主 broker ,并使用 连接 面板中的 URL 登录到 ActiveMQ Web 控制台。

在顶部菜单中,选择 队列。您应能看到用于复制功能的四个 ActiveMQPluginReplication 队列。

为测试消息从主 broker 发送到备份 broker 创建一个队列并发送消息。创建队列时:

队列名称 输入 TestQueue。

选择 创建。

在 TestQueue 的 操作 下,选择 发送至,并执行以下步骤:

介绍 Amazon MQ 跨区域数据复制功能,适用于 ActiveMQ 代理 计算博客输入要发送的 消息数量 为 10,保持其他默认设置。在 消息正文 输入一条测试消息。

选择 发送。

提拔备份 broker,请访问 Amazon MQ 控制台 并将区域更改为备份 broker 所在的 AWS 区域。

选择备份 broker在本例中称为 Secondarybroker,并选择 提拔备份。

在 提拔备份 broker 弹出窗口中:

选择 故障转移或切换。在文本框中输入 确认。

选择 确认。

当备份 broker 正在被提拔时,其复制状态会更改为 提拔中。相应的主 broker 的复制状态会更改为 降级中。

备份 Secondarybroker 状态 提拔中:

主 broker 状态 降级中:

支持泰国ip的加速器

Secondarybroker 状态 提升为新的主 broker:

一旦 Secondarybroker 状态为 运行中,从 连接 面板中的 URL 登录到 ActiveMQ Web 控制台。在 TestQueue 中,您可以看到步骤 4 中从原主 broker 发送的复制消息。

监控跨区域数据复制

要监控跨区域数据复制进度,您可以使用 Amazon CloudWatch 指标 [TotalReplicationLag](https//docsawsamazoncom/amazonmq/latest/developerguide/crdrmetricshtml) 和 [ReplicationLag](https//docsawsamazoncom/amazonmq/latest/developerguide/crdrmetricshtml)。

您可以使用这两个指标来监控切换的进展。当它们的值达到零时,切换将完成,因为 broker 状态已经同步,备份 broker 开始接受客户端连接。如果切换进展缓慢,或者您需要备份 broker 立即可用以接受客户端流量,您可以随时请求故障转移。

注意:故障转移可能会中断进行中的切换,但切换无法中断进行中的故障转移。

发起故障转移请求会使备份 broker 立即可用,但无法保证已复制到备份 broker 的数据。这意味着故障转移可能会使客户端应用的数据跟踪和对账变得比切换更加复杂。

因此,我们建议您始终优先尝试切换,必要时再通过故障转移进行中断。要中断正在进行的切换,按照提拔备份 broker 的步骤,选择故障转移选项并确认。

注意:如果您故障回原主 broker,在故障转移期间未从主 broker 复制到备份 broker 的消息仍将保留在主 broker 中。因此,消费者必须管理这些消息。我们建议将处理过的消息 ID 跟踪在诸如 Amazon DynamoDB 全局表 之类的数据存储中,并与已处理的消息 ID 进行比较。

若您不再需要跨区域复制 broker 数据,或者需要删除主 broker 或备份 broker,必须解除备份 broker 的配对并重启主 broker。您可以在 Amazon MQ 控制台中通过 following 删除 CRDR broker 来解除配对。

要使用 AWS 命令行界面 (AWS CLI) 解锁 broker,运行以下命令,替换 brokerid 为您的主 broker ID:

shellaws mq updatebroker brokerid ltprimary broker IDgt datareplicationmode NONE region useast1

结论

利用 Amazon MQ 的跨区域数据复制功能,提供了一种简便的方法来实现跨区域复制,从而提升您架构的冗余性,并满足业务连续性和灾难恢复需求。本文详细说明了跨区域数据复制在 Amazon MQ 中的工作原理,如何设置跨区域备份 broker,及如何测试和提拔备份 broker。

欲了解更多详细信息,请参阅 Amazon MQ 文档。

有关更多无服务器学习资源,请访问 Serverless Land。

标签: 贡献,无服务器架构

AWS审计经理将生成式AI最佳实践框架扩展至Amazon SageMaker 新闻博客

AWS审计经理将生成式AI最佳实践框架扩展至Amazon SageMaker 新闻博客

AWS Audit Manager 更新Generative AI最佳实践框架关键要点AWS Audit Manager针对生成式人工智能应用程序推出了新版最佳实践框架,适用于Amazon SageM...

使用 AWS Nitro Enclaves 构建 Cubist CubeSigner,一个安全且高度

使用 AWS Nitro Enclaves 构建 Cubist CubeSigner,一个安全且高度

使用 AWS Nitro Enclaves 构建 Cubist CubeSigner:为以太坊验证者及其它应用提供安全且高可靠的密钥管理平台by Fraser Brown Deian Stefan 和...

订阅