4.x和5.x版本差异及兼容性说明

云消息队列 RocketMQ 版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式“消息、事件、流”统一处理平台。随着Apache RocketMQ 5.0版本的发布,阿里云云消息队列 RocketMQ 版将为您提供更加稳定可靠的服务端5.x版本。本文介绍云消息队列 RocketMQ 版服务端5.x版本和4.x版本的差异及兼容性说明。

5.x版本优势

和历史服务端版本相比,云消息队列 RocketMQ 版5.x版本具有如下优势:

  • 架构更先进

    全面采用存储和计算分离的消息架构,存储和计算可以独立按需水平扩展,满足高效弹性运维和高性能大规格能力的诉求。

  • 开发门槛更低

    主推和Apache RocketMQ完全一致的客户端SDK接入,同时兼容历史所有版本的SDK和API接口。

    支持VPC内部安全识别,上云只需修改接入点,无需考虑代码改造。

  • 运维门槛更低

    针对线上容量水位评估、业务峰谷弹性、日常灰度环境等常见困难问题提供自适应弹性、轻量测试环境版等解决方案,整体运维门槛和风险更低。

  • 成本更弹性

    通过云底座技术优化,消息收发计算能力支持预留+突发流量弹性组合,业务方无需为突发流量预留大量Buffer。

    消息存储按量使用付费,相比挂载云盘无法缩容的情况,具备极大的弹性优势。

  • 售卖形态更完善

    提供更完善阶梯系列,提供完整的包月和小时价售卖形态。

SDK兼容性约束

云消息队列 RocketMQ 版5.x版本兼容大部分存量TCP协议SDK,服务端版本和各客户端SDK版本的兼容情况如下表所示,例如,您购买了5.x版本的实例,客户端使用的是5.x对应的最新版SDK,则5.x版本服务端的功能全部支持;若您的客户端使用4.x版本对应的SDK,则基础消息收发功能支持,部分监控指标、消息轨迹数据无法获取。

服务端版本

协议

客户端版本

兼容性

约束限制

5.x版本实例

gRPC协议v2

RocketMQ 5.x SDK

兼容

云消息队列 RocketMQ 版5.x版本实例的所有功能完全支持。

Remoting协议

RocketMQ 4.x/3.x SDK

兼容

消息收发功能支持,但Trace、Metrics部分指标不支持展示。

说明

不支持展示的指标包括生产者指标和消费者指标。详情参见:Metrics指标详情

RocketMQ ONS TCP 1.x SDK

兼容

gRPC协议v1

云消息队列 RocketMQ 版ONS TCP 2.x SDK

不兼容

5.x版本实例暂不支持使用ONS TCP 2.x版本的SDK接入。

HTTP协议

云消息队列 RocketMQ 版ONS HTTP SDK

不兼容

云消息队列 RocketMQ 版5.x SDK不支持HTTP协议。

4.x版本实例

gRPC协议v2

云消息队列 RocketMQ 版5.x SDK

不兼容

4.x版本实例不支持使用5.x版本对应的SDK连接访问。

Remoting协议

RocketMQ 4.x/3.x SDK

兼容

云消息队列 RocketMQ 版4.x版本实例的功能完整支持。

RocketMQ ONS TCP 1.x SDK

兼容

gRPC协议v1

RocketMQ ONS TCP 2.x SDK

兼容

HTTP协议

RocketMQ ONS HTTP SDK

兼容

4.x和5.x功能兼容说明

云消息队列 RocketMQ 版5.x版本实例基于大规模企业客户的生产实践经验,对消息收发流程中的部分功能行为进行了优化调整。因此,部分场景下的参数配置、功能行为会有差异,一般情况下不影响主要消息收发链路,对于存量4.x版本升级到5.x版本,请您根据业务情况评估风险。

具体的功能行为差异如下:

功能差异项

4.x版本

5.x版本

说明

定时消息最大定时时长

40天

  • 包年包月、按量付费标准版,Serverless标准版与专业版最大支持7天。

  • 包年包月、按量付费专业版,铂金版最大支持40天。

超长定时参数会给系统带来稳定性风险,建议定时时长不要设置过长,使用短定时模拟业务场景。更多信息,请参见定时/延时消息

如有4.x存量实例迁移,当前最大定时时长不满足要求,请您提交工单咨询。

HTTP协议支持情况

支持

不支持

5.x版本暂不支持HTTP协议,若您的4.x存量实例使用的HTTP协议,建议暂缓升级。

RAM授权策略

数据链路+管控链路

支持管控链路,但授权策略和4.x版本不一致

  • 5.x版本采用更标准的ARN和策略定义,存量用户需要重新按照5.x版本权限策略进行授权才能正确使用5.x版本资源。

  • 5.x版本数据链路不再支持RAM授权策略,采用RocketMQ开源ACL2.0权限体系。详见用户身份识别

全球消息路由

支持

不支持

5.x版本不支持全球消息路由功能配置任务,需要采用消息集成功能实现实例间的消息同步。详见消息集成

消息类型限制

不限制

强限制

5.x版本将消息类型拆分到主题中进行独立运维和处理,因此系统会对发送的消息类型和主题定义的消息类型进行强制校验,若校验不通过,则消息发送请求会被拒绝,并返回类型不匹配异常。详见主题行为约束

购买限制

  • 云消息队列 RocketMQ 版5.x版本实例面向所有用户提供购买开通服务。

  • 云消息队列 RocketMQ 版4.x版本实例仅支持针对存量用户开放购买,建议您尽量将实例版本升级到5.x,如有升级诉求,请提交工单咨询。

4.x版本至5.x版本升级说明

当前暂不支持使用升级工具将4.x版本实例原地升级到5.x版本。如果您需要将存量实例升级至5.x版本实例,建议您参考如下流程购买5.x版本实例,逐步将业务流量迁移至新的实例。迁移流程

说明

如上图所示,在第二步可以采用Topic、Group导入/导出功能快速实现元数据的创建,详情参见:Topic导入/导出Group导入/导出

业务迁移时,您可以参考以下双读双写、分批发布的方案进行操作。

迁移业务