安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

RocketMQ消息存储原理

5月9日 溷元楼投稿
  消息存储CommitLog
  1、消息内容和元数据都会存在CommitLog日志文件中2、消息内容不是定长的3、单个文件大小默认1G文件名长度为20位左边补零剩余为起始偏移量比如第一个文件名是00000000000000000000起始偏移量为0文件大小为1G1073741824当第一个文件写满了第二个文件为00000000001073741824起始偏移量为1073741824ConsumeQueue(消息消费队列)
  主要是为了提高消息消费的性能
  消费者通过消息消费队列ConsumeQueue(作为索引)来查找消费的消息
  消费队列ConsumeQueue(索引)内容
  ConsumeQueue(逻辑消费队列)作为消费消息的索引保存了指定Topic下的队列消息在CommitLog中的起始物理偏移量offset(8个字节)消息大小size和(4个字节)消息Tag的HashCode值(8个字节)每个条目定长20个字节单个文件有30W个条目可以像数组一样随机访问每个条目每个ConsumeQueue文件大约5。72M
  consumequeue文件夹的组织方式topicqueuefile三层组织结构
  具体存储路径HOMEstoreconsumequeue{topic}{queueId}{fileName}IndexFile(索引文件)
  通过key或时间区间来查询消息1、存储位置HOMEstoreindex{fileName}2、文件名以创建时的时间戳命名的3、文件大小单个文件约为400M可以存储2000W个索引存储结构
  Broker是混合型存储结构
  单个broker所有队列共用一个日志文件
  索引和数据分离的存储结构
  生产者和消费者使用索引和数据相分离的存储结构
  整体流程
  1、Producer发送消息至Broker端
  2、Broker端使用同步或者异步的方式对消息刷盘持久化
  保存至CommitLog中
  3、Consumer拉取消息
  4、服务端也支持长轮询模式
  Broker允许等待30s的时间
  只要这段时间内有新消息到达
  将直接返回给消费端
  页缓存和内存映射页缓存(PageCache)是OS对文件的缓存
  用于加速对文件的读写
  程序对文件进行顺序读写的速度几乎接近于内存的读写速度
  主要原因就是由于OS使用PageCache机制对读写访问操作进行了性能优化
  将一部分的内存用作PageCache
  对于数据的写入
  OS会先写入至Cache内
  随后通过异步的方式由pdflush内核线程将Cache内的数据刷盘至物理磁盘上
  对于数据的读取如果一次读取文件时出现未命中PageCache的情况OS从物理磁盘上访问读取文件的同时会顺序对其他相邻块的数据文件进行预读取
  消费队列的读性能几乎接近读内存的原因
  在消息堆积的情况下也不会影响性能存储的数据较少pagecache机制预读取顺序读取
  消息存储的日志数据文件CommitLog的读取会严重影响性能
  读取消息内容会产生较多的随机访问读取
  如何提升随机读性能在块存储采用SSD的话选择合适的系统IO调度算法比如Deadline算法随机读的性能会有所提升文件的读写操作传统的IO方式
  传统的IO方式
  用户态空间的进程要读写磁盘文件
  需要经过内核空间
  用户进程访问内核空间的缓存
  如果没有的话则读取磁盘文件
  用户进程写入文件先写入内核空间的socket缓存
  再通过网卡写入到磁盘
  经过2次DMA拷贝2次CPU拷贝
  4次上下文切换
  RocketMQmmapwrite
  1、页缓存是对磁盘数据的缓存2、用户先读取页缓存如果没有数据则读取磁盘根据局部性原理将相邻磁盘块读入页缓存3、用户将数据写入页缓存异步线程将小的写入操作合并成大的写入然后刷入磁盘4、顺序写入磁盘磁头几乎不用换道5、异步刷盘容易丢失数据a、可以同步刷盘但性能低b、一般采用多副本机制保证消息的可靠6、数据追加到日志文件的尾部老的消息无法更改
  mmap利用内存映射文件来避免拷贝
  用户空间可以通过映射地址加偏移量的方式直接操作内核空间的页缓存避免了内核态再拷贝到用户态
  rocketmq采用mmapwrite方式实现文件读写操作
  产生2次DMA拷贝1次CPU拷贝4次上下文切换通过内存映射减少了一次CPU拷贝可以减少内存使用适合大文件的传输对比Kafafasendfile
  sendfile
  1、用户进程通过sendfile()方法向操作系统发起调用上下文从用户态转向内核态2、DMA控制器把数据从硬盘中拷贝到读缓冲区3、CPU将读缓冲区中数据拷贝到socket缓冲区DMA控制器把数据从socket缓冲区拷贝到网卡上下文从内核态切换回用户态sendfile调用返回2次用户态和内核态的上下文切换3次拷贝sendfile方法IO数据对用户空间完全不可见所以只能适用于完全不需要用户空间处理的情况比如静态文件服务器
  sendfileDMAgather
  1、用户进程通过sendfile()方法向操作系统发起调用
  上下文从用户态转向内核态
  2、DMA控制器利用scatter把数据从硬盘中拷贝到读缓冲区离散存储
  3、CPU把读缓冲区中的文件描述符和数据长度发送到socket缓冲区
  4、DMA控制器根据文件描述符和数据长度
  使用scattergather把数据从内核缓冲区拷贝到网卡
  5、sendfile()调用返回,上下文从内核态切换回用户态
  DMAgather和sendfile一样数据对用户空间不可见
  而且需要硬件支持
  同时输入文件描述符只能是文件
  但是过程中完全没有CPU拷贝过程
  极大提升了性能
  产生2次DMA拷贝
  没有CPU拷贝
  而且也只有2次上下文切换
投诉 评论 转载

RocketMQ消息存储原理消息存储CommitLog1、消息内容和元数据都会存在CommitLog日志文件中2、消息内容不是定长的3、单个文件大小默认1G文件名长度为20位左边补零剩余为起始偏移量……康芝药业研究表明苏拉明钠药物对奥密克戎变异株有明显抗病毒作用郭霁莹中国证券报中证网中证网讯(记者郭霁莹)康芝药业3月31日晚间公告,公司近日收到广东省公共卫生研究院针对横向科研项目研究合作协议研发项目的《苏拉明钠对SARSCoV2……红米K50迎来爆发,红米K50Pro版本反而卖不动,这两款该红米K50从诞生之初起,就受到了不少业界的好评,论销量来看也侧面验证了这个评价,两千元到三千元这个价位其实各个厂商的竞争都非常的激烈。不过红米K50系列确实非常强悍。但是红米K……国内互联网公司的困境国内互联网公司的困境国内市场瓜分殆尽,国际市场无力竞争。当然,国际市场并不单纯是市场问题,而是国家整体竞争的问题。欧洲各国甚至俄罗斯都没有自己的互联网巨头,不全是自己国家……为什么说ThinkPadX1Carbon(X1系列)是高端商说到万元左右的高端商务旗舰办公本,ThinkPadX1Carbon是不得不提的一款机型。了解ThinkPadX1系列的都知道,X1系列是ThinkPad的高端产品线,到目前为止……苹果手机跟华为哪款手机好用?关于苹果手机,华为手机如何选择,小编作出以下回答。老实说,仅在手机层面较量的话,华为在苹果面前还差一个自主性能最强的A系芯片和一个自主流畅度最好的iOS系统。单凭这两点,……三大运营商这次被动了!5G资费居然已经降价到9元起近期华为推出的4G手机,即使是旗舰版P50,也难免得到了许多网友的吐槽,都什么年代还在出4G手机,看来如今许多人也已经用上5G,而4G逐渐成为过去式。5G从部署到推广到落……利用旧口罩可制造经济型电池俄罗斯国立研究型技术大学开发出一项新技术,利用旧口罩生产经济型电池,而电池外壳由废旧的药品包装制造。相关研究发表在《能源储存》杂志上。研究人员表示,这项新技术可获得既薄又……新鲜早科技丨亚马逊回应Kindle退出中国市场传闻传快手饿了21世纪经济报道记者杨清清综合报道早上好,新的一天又开始了。在过去24小时内,科技行业发生了哪些有意思的事情?来跟21tech一起看看吧。【巨头风向标】1、K……心无旁骛,纵享沉浸前言我知道描述VR头盔的体验是非常很困难的,因为这就好比无论你怎么去给你的朋友吹爆HalfLifeAlyx,都不如让他戴上头盔,然后被猎头蟹给来那么一下:)VR的快……618期间,有什么屏幕观感好的手机,5K预算?屏幕观感好的话,5K预算,可以去看看小米11Pro这款产品,它采用了一款6。81英寸的AMOLED四曲面柔性屏,三星E4发光材料,支持2K分辨率,PPI达到了515,可以提供精……贾跃亭为什么不敢回国?为什么不抓他回国?1973年2月6日出生于山西省临汾市襄汾县,乐视控股集团创始人,乐视汽车生态全球董事长。2004年创建乐视网,于2010年8月在创业板上市,致力于打造基于视频产业、内容产业和智……
vivoNEX5再次确认,不仅有5600mAh电池4nm芯片从zfold3可以猜到note21的方向支付宝的套路太有牌面了!全年大卖的moto手机,即将上春晚给全国人民拜年拥抱数字技术加快产业转型那么多奥运健儿,小米为什么会签约苏炳添代言,而不是其他人呢?华为手环33Pro今日开售独立GPSNFC支付AOP实现一个前置通知(详细)2022我们依然看好这四大赛道马斯克特斯拉Autopilot和FSD没有误导消费者双12买什么手机?还是先看看双11卖得最多的十款手机3000元能买到什么电视?OPPOK9电视65英寸评测

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利