RocketMQ消息存储结构说明

消息ID产生规则是怎样的?

  1. 如果broker为ipv6,长度为28字节:ip(16)+port(4)+消息在commit log的偏移量(8)
  2. 如果broker为ipv4,长度为16字节:ip(4)+port(4)+消息在commit log的偏移量(8)

消息存储结构

消息总长度(4)+magic code(4个字节:daa320a7)+body crc(4)+queue id(4)+flag(4)+consume queue中的偏移量(8)+commit log中的偏移量(8)+sys flag(4)+生产时间戳(8)+born host(ip加端口,8或20字节)+store timestamp(8)+store host(ip加端口,8或20字节)+重试次数(4)+Prepared Transaction Offset(8)+ body长度(4)+body(变长)+topic长度(1)+topic(变长)+属性值长度(2)+属性值内容(变长)

定时消息如何实现?

定时消息会发送到特定的topic(SCHEDULE_TOPIC_XXXX),根据delayLevel存储到不同的queue;原始topic和queue会记录到消息的property中;

你可能感兴趣的:(RocketMQ消息存储结构说明)