全部产品
Search
文档中心

云消息队列 RocketMQ 版:使用须知

更新时间:Sep 25, 2024

云消息队列 RocketMQ 版提供了通过HTTP协议的多语言SDK接入的能力,并支持公网访问。本文介绍HTTP协议下的多语言SDK的版本说明。

多语言支持

云消息队列 RocketMQ 版支持RESTful风格的HTTP协议通信,并提供了7种语言的SDK。HTTP协议的SDK所支持的功能通过不断迭代,与TCP协议的SDK所支持的功能逐渐对齐。HTTP协议的迭代版本所支持的功能与TCP协议功能对比说明,请参见:

注意事项

  • HTTP协议下,消费者支持通过长轮询和短轮询方式获取云消息队列 RocketMQ 版服务端中的消息进行消费。

    • 长轮询:消费者向服务端发送请求获取指定Topic中的消息,若Topic中没有消息,服务端不会立即返回响应,会将该请求挂起,直到Topic有消息或达到长轮询时间才会返回响应。

    • 短轮询:若Topic中没有消息,服务端会立即返回响应,且再次不断发起订阅请求。

    配置方式如下:

    • 长轮询:发起订阅请求时,将waitSeconds参数设置为0或不设置。

    • 短轮询:发起订阅请求时,将waitSeconds参数设置为大于0,最大值为30秒。

    具体接口说明,请参见订阅消息API

    当Topic中没有消息产生时,短轮询方式可能会产生大量无效的订阅请求,这部分请求也会仍然计算API调用费用,建议您可以使用长轮询方式适当增加长轮询等待时间,减少无效请求次数以降低费用。具体API调用费用计算方式,请参见API调用费用

    重要

    消费者在采用HTTP协议发起消费请求时,为确保消息服务的稳定性及消费消息的及时性,当消费者连接数超过100个,长轮询将退化为短轮询。请注意控制消者连接数量,以免退化短轮询产生过多的无效请求次数,从而增加您的成本。

  • 支持HTTP协议SDK接入为云消息队列 RocketMQ 版商业版的增强功能,开源自建RocketMQ集群不支持该功能,无法使用HTTP协议的SDK接入。

  • 确保您需要访问的资源和HTTP接入点在同一地域。

    例如您的云消息队列 RocketMQ 版实例在华东1(杭州)地域,则只能使用华东1(杭州)地域的接入点来访问该地域的实例。您可以实现以下场景的资源访问:

    • 如果您的客户端在华东1(杭州)地域,为了最佳体验,请使用该实例的HTTP内网接入点访问该实例资源。

    • 如果您的客户端在华东1(杭州)以外的任一地域,请确保客户端可连上互联网,并使用该实例的HTTP公网接入点访问该实例资源。

  • TCP协议的客户端和HTTP协议的客户端之间可以实现消息收发。但由于HTTP协议采用XML序列化,因此消息的属性、内容、Tag、Key等必须符合XML规范。

    说明

    XML的规范详情,请参见XML语法。您也可按需使用第三方工具xml_validator校验XML语法的规范性。

    如果包含了不符合XML规范的相关字符,那么可能出现以下情况:

    • 采用HTTP协议发送消息时,发送消息失败。

    • 采用TCP协议发送消息,HTTP协议消费消息时,消费消息失败。

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