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接入,同时兼容历史所有版本的SDKAPI接口。

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

  • 运维门槛更低

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

  • 成本更弹性

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

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

  • 售卖形态更完善

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

各版本SDK说明

云消息队列 RocketMQ 版各版本SDK和功能支持情况如下所示:

下表中的✅表示支持该功能,❌表示不支持该功能。

对比项

RocketMQ 5.x gRPC SDK

RocketMQ 5.x Remoting SDK

RocketMQ 4.x/3.x SDK

RocketMQ ONS TCP 1.x SDK

RocketMQ ONS TCP 2.x SDK

RocketMQ ONS HTTP SDK

协议

gRPC协议v2

Remoting协议

Remoting协议

Remoting协议

gRPC协议v1

HTTP协议

可访问的实例

5.x系列实例

  • 5.x系列实例

  • 4.x系列实例

  • 5.x系列实例

  • 4.x系列实例

  • 5.x系列实例

  • 4.x系列实例

4.x系列实例

4.x系列实例

使用建议

推荐5.x gRPC SDK。

  • 多语言支持完善。

  • 后续所有新的功能和优化将会在5.x gRPC SDK上得到支持。

  • 如果5.x gRPC SDK的某些功能不能满足需求,则可以考虑使用5.x Remoting SDK。

  • 原业务已使用这些版本的客户端可继续正常使用。

  • 5.x系列实例兼容这些版本的SDK。

  • 不推荐使用这些版本的客户端,这些版本的SDK不支持后续的新功能和优化。

  • 只能访问4.x系列实例。

普通、顺序、事务、定时消息的发送功能

并发消费

顺序消费

广播消费

流式消费(连接 Flink 等)

消息轨迹

4.5.2及以上版本支持

生产者消费者客户端Metrics 指标数据

优雅下线

仅支持5.x系列实例

4.x5.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导入/导出

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

迁移业务