全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网
消息队列 MQ

HTTP 协议规范

更新时间:2017-10-10 11:09:12   分享:   

本文详细介绍了 HTTP 协议相关的规范。具体的示例代码请参考 HTTP 协议下不同开发语言的相关文档。

域名:MQ 提供 HTTP 服务的域名(domain)请参考 HTTP 域名

消息发送

消息发送 Request

  • 消息发送请求 URL 和 Method
请求 URL http://domain/message/
请求 Method POST
  • 消息发送 Head 参数列表
参数名称 参数类型 是否必须 说明
AccessKey String 阿里云身份验证
Signature String 身份验证签名,生成方式:topic+”\n”+ ProducerId +”\n”+md5(body)+”\n”+time
ProducerId String 消息发布组 ID
isOrder boolean 是否是顺序消息,需要和 shardingKey 组合使用。 isOrder为 true,shardingKey 有值才有效。
相同的 Topic,shardingKey 相同的消息会发送到同一个queue里面。
shardingKey String 顺序消息 shardingKey
  • 消息发送 URL 参数列表
参数名称 参数类型 是否必须 说明
topic String 消息 Topic
timeout Long 超时时间,单位毫秒,取值范围1000-3000,默认3000
time Long 客户端时间戳(自1970-01-01, 00:00:00 GMT 经历的毫秒数,如果 MQ 收到时间戳已经过了15s,那么会返回403。)
tag String 消息 Tag 长度:128字符以内,UTF-8 编码
key String 消息 Key 长度:128字符以内,UTF-8 编码
secondTopic String MQTT 的 second Topic,qos为1,暂不支持从http设置其他qos
startdelivertime Long 定时消息时间(自1970-01-01,00:00:00 GMT 经历的毫秒数)。当 Topic 为顺序 Topic 时 startdelivertime 无效,请使用非顺序 Topic。
  • 消息发送 body

    消息体内容为 UTF-8 编码,长度限制 2M 以内。

消息发送-Response

Status code 说明 Body(JSON 格式)
201 消息添加成功 {“msgId”:”0A021F7300002A9F0000000006531D6F”,”sendStatus”:”SEND_OK”}
400 请求失败 {“code”:”BODY_TOO_BIG”,”info”:”Message body size exceeds the upper limit of 64KB”}
403 鉴权失败 无,请检查签名生成方式代码是否正确,AccessKey,SecretKey 填写是否正确,date 时间和互联网时间是否一致。
408 请求超时 无,请检查网络是否异常

消息接收

消息接收 Request

  • 消息接收请求 URL 和 Method
请求 URL http://domain/message/
请求 Method GET
  • 消息接收 Head 参数列表
参数名称 参数类型 是否必须 说明
AccessKey String 阿里云身份验证
Signature String 身份验证签名,生成方式:topic+”\n”+ ConsumerId +”\n”+time
ConsumerId String 消费者 ID
  • 消息接收 URL 参数列表
参数名称 参数类型 是否必须 说明
topic String 消息 Topic
timeout Long 超时时间,单位毫秒,取值范围20000-35000,默认35000。
time Long 客户端时间戳(自1970-01-01, 00:00:00 GMT 经历的毫秒数,如果 MQ 收到时间戳已经过了15s,那么会返回403。)
num int 拉取返回消息数量,默认32。取值范围 1-32。

消息接收-Response

Status code 说明 Body(JSON 格式)
200 消息读取成功 [{“body”:”HelloMQ”,”bornTime”:”1418973464204”,   “msgHandle”:”X1BFTkRJTkdNU0dfXyVSRVRSWSUkbG9uZ2ppJENJRF9sb25namlfdGxvbmdqaQ==”,   “msgId”:”0A021F7300002A9F000000000647076D”,”reconsumeTimes”:1}]
400 请求失败 {“code”:”TOPIC_NOT_EXIST”,”info”:”topic not exist”}
403 鉴权失败 无,请检查签名生成方式代码是否正确,AccessKey,SecretKey 填写是否正确,date 时间和互联网时间是否一致。
408 请求超时 无,请检查网络是否异常。

消息删除

消息删除 Request

  • 消息删除请求 URL 和 Method
请求 URL http://domain/message/
请求 Method DELETE
  • 消息删除 Head 参数列表
参数名称 参数类型 是否必须 说明
AccessKey String 阿里云身份验证
Signature String 身份验证签名,生成方式:topic+”\n”+ ConsumerId + “\n” + msgHandle + ”\n” + time
ConsumerId String 消费者 ID
  • 消息删除 URL 参数列表
参数名称 参数类型 是否必须 说明
topic String 消息 Topic
msgHandle String get 返回消息的 handle
time Long 客户端时间戳(自1970-01-01, 00:00:00 GMT 经历的毫秒数,如果 MQ 收到时间戳已经过了15s,那么会返回403。)

消息删除-Response

Status code 说明 Body(JSON 格式)
204 消息删除成功 无返回内容
400 请求失败 {“code”:”TOPIC_NOT_EXIST”,”info”:”topic not exist”}
403 鉴权失败 无,请检查签名生成方式代码是否正确,AccessKey,SecretKey 填写是否正确,date 时间和互联网时间是否一致。
408 请求超时 无,请检查网络是否异常。

关于消息接收与消息删除的说明

消息接收到之后需要在 15 分钟之内删除。如果在 15 分钟之后删除,消息可能会被重新接收到(消息没有消费成功会被再次投递)。多次超过 15 分钟才删除消息,会导致消息大量重复。因此,建议您在消息接收之后的短时间内处理完业务逻辑。

本文导读目录
本文导读目录
以上内容是否对您有帮助?