SDK参考概述

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

SDK兼容性说明

云消息队列 RocketMQ 版服务端版本和客户端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

兼容

TCP协议

重要

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

商业版TCP协议SDK(ONS 1.x/2.x SDK)

社区版TCP协议SDK(4.x/3.x SDK)

HTTP协议

商业版HTTP协议SDK(多语言推荐)

TCP和HTTP协议SDK差异对比

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

SDK协议类型

TCP协议SDK

HTTP协议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组网,可以使用公网接入点访问服务。公网接入点需要支付额外的公网下行流量费用,具体信息,请参见公网流量定价详情