消息 是 BitMQ 传输数据的基本单位。

消息属性

名称 类型 数值范围 缺省值
msg_id int 0 - 2^64  
type int 0 - 1 0
producer_id int 0 - 2^64 0
consumer_id int 0 - 2^64  
create int 0 - 2^64  
effect int 0 - 25920000 0
expire int 0 - 25920000 0
data string    

消息属性说明

msg_id

msg_id 是 BitMQ 内部用于标识消息的唯一编码。

在单一 BitMQ 服务端内, msg_id 依据消息接收的顺序进行编号,较晚接收到的消息的 msg_id 必然大于较早接收到的消息。

对于 BitMQ 客户端来说,msg_id 的自增性、连续性与唯一性并没有任何保证。这是由于以下原因导致的:

  • 客户端可能会从多个 BitMQ 服务端获取消息(例如集群环境下)。
  • BitMQ 服务端依据消息生效的顺序来决定消息投递的顺序。对于生效时刻相同的消息,其投递顺序是随机的。

在主从复制环境下,slave 实例的 msg_id 会保持和 master 实例一致。

开发与测试 BitMQ 提供了一个 HTTP 接口 [/mq/status/message/:msg_id], 可以通过 msg_id 来查询该消息的相关信息。

type

type 用于声明该消息的类型。

消息类型 类型名称
0 广播消息
1 轮播消息
2 确认消息
3 遗嘱消息

producer_id

producer_id 用于声明该消息的生产者频道

producer_id 不是必须的。如果在投递消息时没有指定 producer_id,接收消息时该字段将不存在。

consumer_id

consumer_id 用于声明该消息的消费者频道

开发与测试 BitMQ 提供了一个 HTTP 接口 [/mq/status/channel/:channel_id], 可以通过 channel_id 来查询该频道的相关信息。

create

create 用于声明该消息的创建时间。

目前,create 是由 BitMQ 自动生成的。create 的值代表 BitMQ 接收到该消息的时刻。

新版本与新特性 BitMQ 将在未来的版本中允许在投递消息时指定该消息的创建时间。

effect

effect 用于声明该消息的延迟生效时间。

通过指定 effect 可以实现消息的延迟投递。

需要注意 effect 所记录的值代表了消息生效相对于 create 的时间间隔(例如 60 秒),而不是消息生效的时刻。

expire

expire 用于声明该消息的有效时间。

需要注意 expire 所记录的值代表了消息过期相对于消息生效的时间间隔(例如 180 秒),而不是消息过期的时刻。

data

data 是消息的主体,一段指定长度的二进制数据。