kafka单机队列/分区超过64个厚,load时间明显会飙升,队列越多,load越高,发送消息时间变长
RocketMQ 单机支持支持5W队列,load时间稳定

为什么?
因为二者的持久化方式差异
kafka 不同的topic和分区持久化都会有独立的文件保存
这就导致了它io的时候要在不同的文件下切换,当切换次数多的时候会表现的很不稳定

rocketmq 不管多少个topic,多少个队列都是保存在一个文件下避免了切换问题,所以在多队列的场景下稳定

commitlog是消息存储的主体,producer发送的消息都会顺序写入commitlog
写入commitlog的同时 会启动一个异步线程 同步到Comsumequeue
comsumequeue(逻辑消费队列)是基于topic的文件索引,记录了 commitlog offset,message size ,taghashcode 固定20Bytes
消费者读取消息时,先读取comsumerQueue ,然后再通过commitlog中拿到消息主体

indexFile 是可以通过key(topic+msgid) 或时间区间来查询消息的方式,主要是针对客户端和控制台接口提供根据key查询消息的实现。

Rocketmq持久化相关推荐

  1. RocketMQ 持久化

    RocketMQ 采用文件系统的方式来存储消息,消息的主要存储文件包括 CommitLog 文件.ConsumeQueue 文件.IndexFile 文件. CommitLog 是消息存储的物理文件, ...

  2. 消息队列重要机制讲解以及MQ设计思路(kafka、rabbitmq、rocketmq)

    目录 <Kafka篇> 简述kafka的架构设计原理(入口点) 消息队列有哪些作用(简单) 消息队列的优缺点,使用场景(基础) 消息队列如何保证消息可靠传输 死信队列是什么?延时队列是什么 ...

  3. RocketMQ知识点整理

    RocketMQ知识点整理 一.消息队列 二.RocketMQ简介 RocketMQ-组件 RocketMQ架构: 三. RocketMQ理解性问题整理 1.使用消息中间件之前需要先了解"同 ...

  4. 2021秋招学习笔记

    PS:csdn上有很多图片加载不出来,有PDF版在我的资源.(如果没有1积分可以评论我,直接发给你邮箱) 文章目录 Java基础篇学习(7/3-7/4) 数据类型 泛型.反射.注解.序列化(加实例) ...

  5. 2020年Java面试经典100问,进入BAT不是梦

    本文由公众号「Java旅途」整理,设计到的内容由java基础.数据库.SSM框架.redis.消息队列.spring boot.spring cloud.git及一些前端知识.整理时间为2019-11 ...

  6. RocketMQ 消息持久化机制

    我们知道 RocketMQ 是一款高性能.高可靠的分布式消息中间件,高性能和高可靠是很难兼得的.因为要保证高可靠,那么数据就必须持久化到磁盘上,将数据持久化到磁盘,那么可能就不能保证高性能了. Roc ...

  7. 从源码分析RocketMQ系列-RocketMQ消息持久化源码详解

    导语   在上篇分析中,提到了一个概念处理器,并且在进入到最终NettyIO的时候看到了一个Pair的对象,这个对象存储了两个对象,一个是执行器,一个是处理器,在进入Runable对象的时候看到封装到 ...

  8. RocketMQ入门到入土(五)消息持久化存储源码解析

    精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 Mybatis内容聚合 接上一篇:RocketMQ入门到入土(四)producer生产消息源码剖析 ...

  9. rocketmq消息持久化到mysql_RocketMQ之事务消息

    由于工作流引擎项目中,工作流引擎服务和业务服务是分开的,所以就涉及到了分布式事务的问题.综合考虑到并发量和分布式事务的保障,最终选择了事务消息的方式. 首先我们来介绍下本地消息表这种方案,当消息队列不 ...

最新文章

  1. 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  2. 怎么共享电脑上的文件_电脑小技巧--远程访问共享文件夹
  3. spring 的配置 beanpropertyname属性
  4. Android实现支付宝AR功能,Android RecyclerView 实现支付宝首页效果
  5. python教程很详细_Python编程入门教程:从入门到高级,非常详细
  6. java substring 越界_我在java中用substrng()提取某一字符串的子串是老是出现越界的问题,求指教~~~...
  7. mybatis中使用in查询时的注意事项
  8. [阅读笔记]Modern C++ Programming with Test-Driven Develpment chp2
  9. Linux下Libtorch运行出现free(): invalid pointer报错
  10. Unity实现多旋翼无人机的模拟飞行(物理引擎)
  11. 【fiddler手机抓包不能上网问题解决】
  12. 计算机软件专业硕士,软件工程硕士与计算机硕士区别
  13. 爆笑宜昌方言版《大学自习室》说唱
  14. 禁止查看网页源文件的代码
  15. mysql的配置文件(my.ini或者 my.cnf)所在位置
  16. fiddler重放请求
  17. JAVA将文字转语音文件
  18. canvas对象arc函数的使用-遁地龙卷风
  19. ThingsBoard 3.1 发布
  20. 第三章第三节、他是一个箍桶匠

热门文章

  1. 解决gateway使用nacos重启报503 Service Unavailable问题
  2. 说电影《悲伤逆流成河》
  3. 我爱罗__baike
  4. swift 的网络解析 Alamofire
  5. 利用python网络爬虫获取软科中国最好大学排名2019数据
  6. WebShell 木马免杀过WAF
  7. CentOS7之开发环境搭建
  8. 「Go工具箱」web中的session管理,推荐使用gorilla/sessions包
  9. Question2Answer页脚版权链接修改
  10. HCIA-HarmonyOS Application Developer——题目集3