联邦任务
联邦任务基于EventBridge事件流功能实现开源 Federation 插件能力。通过配置联邦任务,您实现元数据和消息跨集群同步和复制。
注意事项
当前云上联邦插件功能仅支持联邦交换机(Exchange Federation),即实现 Exchange 到 Exchange 的消息同步。联邦队列(Queue Federation)功能待上线。
请确保目标端 RabbitMQ 实例的消息大小限制至少与源端实例的消息大小限制相同。如果目标端实例的消息大小限制小于源端的限制,当消息的大小超过目标端实例的限制时,将导致消息路由失败,进而导致消息同步失败。
费用说明
使用联邦任务会产生额外费用,总费用由两部分组成:
总费用 = 云消息队列 RabbitMQ 版费用 + 事件总线 EventBridge 转发费用
前提条件
云消息队列 RabbitMQ 版实例:源实例、源 Vhost 或目标实例、目标 Vhost 已创建并可用。
事件总线 EventBridge:已开通事件总线EventBridge并授权。
开源 RabbitMQ 集群(如适用):若目标集群为开源 RabbitMQ 集群,请确认
rabbitmq_event_exchange插件已开启。具体操作,请参见:开启 rabbitmq_event_exchange插件。
创建联邦任务
创建联邦任务需依次完成以下步骤:创建任务、服务授权、配置集群信息、配置任务参数、验证任务状态。
步骤一:创建任务
在左侧导航栏,选择联邦任务。
在联邦任务页面,单击创建任务。
步骤二:服务授权
首次创建联邦任务,将自动创建服务的关联角色 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 |
顺序性 | 联邦任务在同步消息时是否按照消息顺序: | - 并发 | |
联邦 Exchange 参数 | Max hops | 一条消息在联邦任务中允许转发的最大跳数(hops),超过此限制后消息将被丢弃 | 1 |
交换机表达式 | 用于匹配一个或多个交换机名称的正则表达式,符合该表达式的交换机将会被同步到源集群 | .* |
步骤五:验证任务状态
在联邦任务页面,可以看到已创建的任务,其状态为启动中。
待任务状态更改为运行中,说明联邦任务已启动成功。
最佳实践
1. 合理规划 Max hops
对于简单的点对点同步场景,建议设置为 1
对于多层级联的场景,根据实际拓扑结构设置合适的跳数
避免设置过大的跳数,防止消息循环转发
2. 精确配置交换机表达式
使用精确的正则表达式匹配需要同步的交换机
避免使用过于宽泛的表达式(如
.*),以免同步不必要的交换机示例:
匹配所有以 "order" 开头的交换机:
^order.*匹配特定命名的交换机:
^(order|payment|inventory)$
3. 选择合适的顺序性模式
并发模式:适用于对消息顺序无严格要求的场景,性能更高
顺序模式:适用于需要保证消息处理顺序的业务场景(如订单处理、状态流转等)
4. 监控和告警
定期检查联邦任务运行状态
配置消息积压告警
监控同步延迟指标,及时发现异常
5. 网络规划
确保源集群和目标集群之间的网络延迟在可接受范围内
跨地域同步时,考虑使用专线或 VPN 提高网络稳定性
合理规划 VPC 和安全组规则,确保网络可达
常见问题
Q1:联邦任务启动后一直处于"启动中"状态怎么办?
请检查以下几点:
确认源集群和目标集群的网络连通性正常
确认集群认证信息(用户名、密码)正确
确认 EventBridge 服务已正确开通并授权
查看控制台是否有错误提示,根据提示进行排查
Q2:消息同步出现延迟或丢失如何处理?
延迟问题:检查网络带宽使用情况,考虑优化消息大小或增加带宽
丢失问题:确认目标端实例的消息大小限制不小于源端;检查 Max hops 设置是否合理;查看交换机表达式是否正确匹配目标交换机
Q3:如何修改已创建的联邦任务?
目前联邦任务创建后不支持直接修改。如需调整配置,建议删除原有任务后重新创建。
Q4:联邦任务支持双向同步吗?
联邦任务是单向同步的。如需实现双向同步,需要分别创建两个方向的联邦任务。