> 龚皓你好,
如果有大量的consume queue, 对系统确实还是有一些影响的. 下面解释下为什么这个影响可控. 1. 每一条消息, 对应的consume queue entry大小只有20字节. 也就是说, 一个queue里面, 发送200多条消息, 才需要一次IO去存储. 2. 由于consume queue完全可以从commit log中构造出来, consume queue的刷盘策略, 可以配置的更松弛一些, 比如每隔T刷盘一次. 这样可以进一步减少随机IO的量. 当然, 这里涉及内存和IO的一个平衡. 3. 实际生产上, 经常会把consume queue和commit log分配到不同的磁盘. 李战辉 > 在 2018年6月3日,下午7:52,龚皓 <369897...@qq.com> 写道: > > 您好! > 我们是一家中型互联网公司的,我对rocketmq支持海量topic的功能特别感兴趣,也特别疑惑。我看到就是说 > rocketmq相较于kafka,分离了consume queue文件和commit log文件。用户读写的时候都是顺序读写queue文件的, > 但这个地方我就非常有点搞不懂。虽然是顺序读写,但是如果topic数量上万,上10w,还是会产生大量的磁盘随机读写(用来打开对应文件), > 请问您在设计这个地方的是时候具体是使用了什么方式,或者需要什么特别的机器适配这种业务场景,或者还是什么其他地方我理解错了 > 非常打扰,万分感谢 > > 环球易购 > > 龚皓