云消息队列 RocketMQ 版支持TCP协议和HTTP协议的多语言SDK,本文为您介绍这两种协议SDK的差异和使用说明。

SDK兼容性说明

云消息队列 RocketMQ 版服务端版本和客户端SDK版本的兼容情况如下:

服务端版本客户端版本兼容性约束限制
5.x版本实例RocketMQ 5.x SDK兼容云消息队列 RocketMQ 版5.x版本实例的所有功能完全支持。
RocketMQ 4.x/3.x SDK兼容消息收发功能支持,但Trace、Metrics部分指标不支持展示。
RocketMQ ONS TCP 1.x SDK
重要 5.x版本实例暂不支持使用ONS TCP 2.x版本的SDK接入。
兼容消息收发功能支持,但Trace、Metrics部分指标不支持展示。
云消息队列 RocketMQ 版ONS HTTP SDK不兼容云消息队列 RocketMQ 版5.x SDK默认提供轻量版HTTP协议,无需再使用早期HTTP SDK。
4.x版本实例云消息队列 RocketMQ 版5.x SDK不兼容4.x版本实例不支持使用5.x版本对应的SDK连接访问。
RocketMQ 4.x/3.x SDK兼容云消息队列 RocketMQ 版4.x版本实例的功能完整支持。
RocketMQ ONS TCP 1.x/2.x SDK兼容
RocketMQ ONS HTTP SDK兼容

TCP协议

重要 社区版SDK仅在迁移开源RocketMQ上云且不希望修改代码时使用,其他场景推荐您使用阿里云云消息队列 RocketMQ 版提供的商业版SDK进行接入。和社区版SDK相比,商业版SDK提供了更加丰富的功能特性并具有更高的稳定性保障。

HTTP协议

TCP和HTTP协议SDK差异对比

TCP协议SDK和HTTP协议SDK支持的功能有所差异,请您根据业务需求提前评估需要使用的协议类型。

SDK协议类型TCP协议SDKHTTP协议SDK
选择建议建议优先选择
  • 传输性能好,适用于高并发场景。
  • 消息功能更完整,迭代速度快。
  • 可观测性指标更丰富,消息堆积、消息重置等功能更完善。
备用方案选择
  • 多语言接入的补充方案,TCP协议暂不支持某些语言时可以选择HTTP协议。
  • 轻量接入、功能概念少、适用于简单场景。
普通消息支持支持
顺序消息支持支持
定时和延时消息支持支持
事务消息支持支持
PushConsumer支持不支持
PullConsumer支持不支持
批量消费支持不支持
广播消费模式支持不支持
集群消费模式支持支持
消息重试支持支持
查询消息轨迹支持支持
死信队列支持支持
重置消费位点支持不支持

SDK使用说明

  • HTTP协议和TCP协议的接入点不可混用。例如,您使用TCP协议的SDK收发消息,您需要获取TCP协议的接入点接入云消息队列 RocketMQ 版服务端。
  • 云消息队列 RocketMQ 版支持HTTP协议和TCP协议的Group ID,不同类型的Group ID不能混用。例如,你使用TCP协议的SDK收发消息,则您需要创建TCP协议Group ID。
  • TCP协议的客户端和HTTP协议的客户端之间可以实现消息收发。但由于HTTP协议采用XML序列化,因此消息的属性、内容、Tag、Key等必须符合XML规范。否则可能造成消息发送或消费失败。

    您可以自行采用Base64编码对发送的消息进行编(解)码,以适用于此类不符合XML规范的消息收发场景。

    说明 XML的规范详情,请参见XML语法。您也可按需使用第三方工具xml_validator校验XML语法的规范性。
  • TCP协议和HTTP协议在各地域均提供公网和内网接入点。生产环境默认推荐使用VPC专有网络走内网访问服务;如果需要跨地域、线下IDC、公网网络访问,且当前无法使用CEN组网,可以使用公网接入点访问服务。公网接入点需要支付额外的公网下行流量费用,具体信息,请参见公网流量定价详情