1327334153129086_个人页

个人头像照片 1327334153129086
个人头像照片
0
1
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2022年05月

正在加载, 请稍后...
暂无更多信息
  • 回答了问题 2022-05-12

    RocketMQ存储模型方式是什么?

    RocketMq在设计上遵循了消息文件+索引文件的方式,每种文件都只会追加写。按作用不同分为三类文件: 消息文件commitLog: 一个broker对应一组消息文件commitLog,所有topic的消息都存在commitLog中,写完一个继续写下一个 索引文件consumeQueue: rocketMq中每个topic对应多个queue,每个queue对应一组索引文件consumeQueue,commitLog中的每条消息在consumeQueue中都对应一条索引数据,索引的key为消费位点,内容为commitLog中消息的位置信息。消费位点表示当前消费到第几条消息了,在rocketMq中,消费者都是按消费位点来broker上拉取消息的,比如consumer1,消费topic1下的queue2中的消息,开始消费时,位点为1,consumer1每消费完一条消息,位点就加1,根据这个递增的位点,就可以拉取到queue2中对应所有消息 索引文件index: 除了满足正常消费的消息索引功能外,还需要满足根据某些关键字查询消息的功能,为了保证查询速度,索引文件是少不了的。这些关键字对应的索引就存在index文件中,一个broker对应一组index文件。rocketMq提供了根据消息msgId、消息key来查询消息的功能,对应的,msgId以及指定的消息key就会被索引,其中msgId是自动生成的,肯定有的,消息key是producer发送消息前设置的,可以设置一组key,每个key都会被索引,不设置就没有
    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息