RocketMQ中消息的结构定义虽然简单,不过还是有必要了解下。
Message
RocketMQ消息定义相关的代码位于org.apache.rocketmq.common.message下,Producer发送的消息定义为Message类,其字段定义为,
topic
Message都有Topic这一属性,Producer发送指定Topic的消息,Consumer订阅Topic下的消息。通过Topic字段,Producer会获取消息投递的路由信息,决定发送给哪个Broker。
flag
网络通信层标记。在代码中可能与之相关的使用代码有,
// org.apache.rocketmq.remoting.protocal.RemotingCommand
class RemotingCommand {
@JSONField(serialize = false)
public boolean isOnewayRPC() {
int bits = 1 << RPC_ONEWAY;
return (this.flag & bits) == bits;
}
@JSONField(serialize = false)
public boolean isResponseType() {
int bits = 1 << RPC_TYPE;
return (this.flag & bits) == bits;
}