联邦任务

更新时间:
复制为 MD 格式

联邦任务基于EventBridge事件流功能实现开源 Federation 插件能力。通过配置联邦任务,您实现元数据和消息跨集群同步和复制。

注意事项

重要
  • 当前云上联邦插件功能仅支持联邦交换机(Exchange Federation),即实现 Exchange 到 Exchange 的消息同步。联邦队列(Queue Federation)功能待上线。

  • 请确保目标端 RabbitMQ 实例的消息大小限制至少与源端实例的消息大小限制相同。如果目标端实例的消息大小限制小于源端的限制,当消息的大小超过目标端实例的限制时,将导致消息路由失败,进而导致消息同步失败。

费用说明

使用联邦任务会产生额外费用,总费用由两部分组成:

总费用 = 云消息队列 RabbitMQ 版费用 + 事件总线 EventBridge 转发费用

前提条件

  • 云消息队列 RabbitMQ 版实例:源实例、源 Vhost 或目标实例、目标 Vhost 已创建并可用。

  • 事件总线 EventBridge:已开通事件总线EventBridge并授权

  • 开源 RabbitMQ 集群(如适用):若目标集群为开源 RabbitMQ 集群,请确认 rabbitmq_event_exchange 插件已开启。具体操作,请参见:开启 rabbitmq_event_exchange插件

创建联邦任务

创建联邦任务需依次完成以下步骤:创建任务、服务授权、配置集群信息、配置任务参数、验证任务状态。

步骤一:创建任务

  1. 登录云消息队列 RabbitMQ 版控制台

  2. 在左侧导航栏,选择联邦任务

  3. 联邦任务页面,单击创建任务

步骤二:服务授权

首次创建联邦任务,将自动创建服务的关联角色 AliyunServiceRoleForEventBridgeRabbitMQPlugin。具体信息,请参见 服务关联角色

在"阿里云服务授权 - 从消息队列 RabbitMQ 版读取消息"对话框中,认真阅读提示信息,单击确认。

角色说明AliyunServiceRoleForEventBridgeRabbitMQPlugin:事件总线 EventBridge 使用该角色实现 RabbitMQ 插件功能。

步骤三:配置集群信息

在创建联邦任务配置向导页面,配置联邦任务的源集群和目标集群信息。

集群信息配置参数

参数分类

参数名称

解释

示例

开源 RabbitMQ 集群

URL

开源 RabbitMQ 集群的访问地址,默认端口 5672

192.168.1.1

用户名

开源 RabbitMQ 集群的用户名

admin

密码

开源 RabbitMQ 集群的密码

pass***word

VPC

开源 RabbitMQ 集群所在的 VPC 网络 ID

vpc-2zehiozskjdbb3***

交换机

开源 RabbitMQ 集群所在的虚拟交换机 ID

vsw-m5hksicnqou22***

安全组

开源 RabbitMQ 集群所属机器的安全组 ID

sg-2ca1jjhsdxciap***

Virtual Host

开源 RabbitMQ 集群所部署的 Vhost

test-001

云消息队列 RabbitMQ

实例

云消息队列 RabbitMQ 的实例 ID

amqp-cn-s1q2ksbq***

Virtual Host

云消息队列 RabbitMQ 所部署的 Vhost

test-001

步骤四:配置任务参数

在任务参数页面,配置任务配置信息。

任务参数配置

参数分类

参数名称

解释

可选值/示例

任务参数

任务名称

联邦任务名称

federation-task-001

顺序性

联邦任务在同步消息时是否按照消息顺序:
1. 并发:并发同步消息,不保障消息的顺序性
2. 顺序:按照到达 Exchange 的顺序同步消息

- 并发
- 顺序

联邦 Exchange 参数

Max hops

一条消息在联邦任务中允许转发的最大跳数(hops),超过此限制后消息将被丢弃

1

交换机表达式

用于匹配一个或多个交换机名称的正则表达式,符合该表达式的交换机将会被同步到源集群

.*

步骤五:验证任务状态

在联邦任务页面,可以看到已创建的任务,其状态为启动中

待任务状态更改为运行中,说明联邦任务已启动成功。

最佳实践

1. 合理规划 Max hops

  • 对于简单的点对点同步场景,建议设置为 1

  • 对于多层级联的场景,根据实际拓扑结构设置合适的跳数

  • 避免设置过大的跳数,防止消息循环转发

2. 精确配置交换机表达式

  • 使用精确的正则表达式匹配需要同步的交换机

  • 避免使用过于宽泛的表达式(如 .*),以免同步不必要的交换机

  • 示例:

    • 匹配所有以 "order" 开头的交换机:^order.*

    • 匹配特定命名的交换机:^(order|payment|inventory)$

3. 选择合适的顺序性模式

  • 并发模式:适用于对消息顺序无严格要求的场景,性能更高

  • 顺序模式:适用于需要保证消息处理顺序的业务场景(如订单处理、状态流转等)

4. 监控和告警

  • 定期检查联邦任务运行状态

  • 配置消息积压告警

  • 监控同步延迟指标,及时发现异常

5. 网络规划

  • 确保源集群和目标集群之间的网络延迟在可接受范围内

  • 跨地域同步时,考虑使用专线或 VPN 提高网络稳定性

  • 合理规划 VPC 和安全组规则,确保网络可达

常见问题

Q1:联邦任务启动后一直处于"启动中"状态怎么办?

请检查以下几点:

  1. 确认源集群和目标集群的网络连通性正常

  2. 确认集群认证信息(用户名、密码)正确

  3. 确认 EventBridge 服务已正确开通并授权

  4. 查看控制台是否有错误提示,根据提示进行排查

Q2:消息同步出现延迟或丢失如何处理?

  1. 延迟问题:检查网络带宽使用情况,考虑优化消息大小或增加带宽

  2. 丢失问题:确认目标端实例的消息大小限制不小于源端;检查 Max hops 设置是否合理;查看交换机表达式是否正确匹配目标交换机

Q3:如何修改已创建的联邦任务?

目前联邦任务创建后不支持直接修改。如需调整配置,建议删除原有任务后重新创建。

Q4:联邦任务支持双向同步吗?

联邦任务是单向同步的。如需实现双向同步,需要分别创建两个方向的联邦任务。