rocketmq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yuzhou li <iamzhou...@gmail.com>
Subject Re: rocketmq落盘消息协议CRC的疑问
Date Tue, 29 May 2018 10:10:26 GMT
rocketmq的一条消息是由几部分组成的,比如消息+消息的properties+系统属性(服务端timestamp等等),我的意思是现在代码里面的CRC只对消息本身做了CRC校验,并没有对消息的properties以及系统属性做CRC;而相对应的,kakfa的CRC则是对整个落盘数据做了CRC校验的,所以我才会问下,是我代码没有看全还是确实是这样的呢?

老胡 <2372554140@qq.com> 于2018年5月29日周二 下午6:07写道:

> crc是数据校验,所有的数据都crc都对了,整个就对了。 对当前mappedfile实时crc,是不现实的操作。
如何可能crc的功能是关闭的
> ------------------ 原始邮件 ------------------
> *发件人:* "yuzhou li"<iamzhoug37@gmail.com>
> *发送时间:* 2018年5月29日(星期二) 下午5:56
> *收件人:* "users"<users@rocketmq.apache.org>;
> *主题:* rocketmq落盘消息协议CRC的疑问
>
> this.resetByteBuffer(msgStoreItemMemory, msgLen);
> // 1 TOTALSIZE
> this.msgStoreItemMemory.putInt(msgLen);
> // 2 MAGICCODE
> this.msgStoreItemMemory.putInt(CommitLog.MESSAGE_MAGIC_CODE);
> // 3 BODYCRC
> this.msgStoreItemMemory.putInt(msgInner.getBodyCRC());
> // 4 QUEUEID
> this.msgStoreItemMemory.putInt(msgInner.getQueueId());
> // 5 FLAG
> this.msgStoreItemMemory.putInt(msgInner.getFlag());
>
>
> 落盘的消息只存放了消息内容的CRC校验值,似乎没有对整个落盘数据做CRC校验,这块是有其他地方做了整体的CRC验证吗?还是我理解错了呢?
>
Mime
View raw message