云消息队列 RocketMQ 版支持TCP协议和HTTP协议的多语言SDK,本文为您介绍这两种协议SDK的差异和使用说明。
SDK兼容性说明
云消息队列 RocketMQ 版服务端版本和客户端SDK版本的兼容情况如下:
服务端版本 | 协议 | 客户端版本 | 兼容性 | 约束限制 |
5.x版本实例 | gRPC协议v2 | 兼容 | 云消息队列 RocketMQ 版5.x版本实例的所有功能完全支持。 | |
Remoting协议 | 兼容 | 消息收发功能支持,但Trace、Metrics部分指标不支持展示。 说明 不支持展示的指标包括生产者指标和消费者指标。详情参见:Metrics指标详情。 | ||
兼容 | ||||
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版本实例的功能完整支持。 | ||
兼容 | ||||
gRPC协议v1 | 兼容 | |||
HTTP协议 | 兼容 |
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 |
选择建议 | 建议优先选择
| 备用方案选择
|
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组网,可以使用公网接入点访问服务。公网接入点需要支付额外的公网下行流量费用,具体信息,请参见公网流量定价详情。