Apache RocketMQ

Kafka 与 RocketMQ 的性能大对比!

Deadly 提交于 2020-12-12 13:51:42
在双十一过程中投入同样的硬件资源,Kafka 搭建的日志集群单个Topic可以达到几百万的TPS;而使用RocketMQ组件的核心业务集群,集群TPS只能达到几十万TPS,这样的现象激发了我对两者性能方面的思考。 温馨提示: TPS只是众多性能指标中的一个,我们在做技术选型方面要从多方面考虑,本文并不打算就消息中间件选型方面投入太多笔墨,重点想尝试剖析两者在性能方面的设计思想。 01 文件布局 1.1 Kafka 文件布局 Kafka 文件在宏观上的布局如下图所示: 正如上图所示,Kafka 文件布局的主要特征如下: 文件的组织以 topic + 分区进行组织,每一个 topic 可以创建多个分区,每一个分区包含单独的文件夹,并且是多副本机制。即 topic 的每一个分区会有 Leader 与 Follow,并且 Kafka 内部有机制保证 topic 的某一个分区的 Leader 与 follow 不会存在在同一台机器,并且每一台 broker 会尽量均衡的承担各个分区的 Leader,当然在运行过程中如果不均衡,可以执行命令进行手动重平衡。Leader 节点承担一个分区的读写,follow 节点只负责数据备份。 Kafka 的负载均衡主要依靠分区 Leader 节点的分布情况 。 分区的 Leader 节点负责读写,而从节点负责数据同步

看完不想进阿里都难-阿里Java60万年薪(4面真题):线程同步+数据库锁+中间件等

纵然是瞬间 提交于 2020-12-10 11:14:54
Java中间件一面 1.技术一面考察范围: 重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现 线程池的底层实现以及常见的参数 数据结构基本都问了一遍:链表、队列等 Java内存模型:常问的JVM分代模型,以及JDK1.8后的区别,最后还问了JVM相关的调优参数 分布式锁的实现比较 2.技术一面题目: Java中间件二面 1 .技术二面考察范围 : 问了项目相关的技术实现细节 数据库相关:索引、索引底层实现、mysql相关的行锁、表锁等 redis相关:架构设计、数据一致性问题 容器:容器的设计原理等 2.技术二面题目: Java中间件三面 1.技术三面考察范围 主要谈到了高并发的实现方案 以及中间件:redis、rocketmq、kafka等的架构设计思路 最后问了平时怎么提升技术的 2.技术三面题目 Java中间件四面 最后,你懂的,主要就是HR走流程了,主要问了未来的职业规划。 以上就是阿里Java中间件团队四面题目, 以下最新总结的阿里高级Java必考题范围和答案 ,仅用于参考~ 答案获取方式 扫描下方二维码 来源: oschina 链接: https://my.oschina.net/u/4879367/blog/4784907

消息队列RocketMQ性能测试案例

六眼飞鱼酱① 提交于 2020-12-08 08:28:00
1. 消息队列RocketMQ性能测试案例 1.1 RocketMQ测试分析 客户场景,信息共享交换平台: 1.交换平台需支持每秒万级别数据传输 2.实现跨路段、跨部门、跨行业、跨区域信息即时共享,做到高可靠、低延迟 客户现场展示场景设计思路: 1.针对性的编写一套JAVA代码来支撑本次MQ性能POC验证。 2.选择合适规格的单台ECS,在单个TOPIC下运行多线程代码实现和MQ的订阅发送,统计1分钟内订阅和发送的数据交换TPS情况。 3.考虑POC也要符合客户实际生产场景中MQ使用逻辑,ECS应运行4个独立的JAR包,两对JAR包交叉经过MQ进行数据交换。 4.消息体内的内容应打印到屏幕,通过消息轨迹验证消息的被消费情况。 5.验证结果:客户指定场景下8线程异步,1分钟TPS在10K以上。 1.2 创建资源 本章节详细描述如何创建消息队列 RocketMQ 版的资源。 1.2.1 创建RocketMQ实例 1.登录Apsara Stack控制台。 2.在左侧导航栏中单击中间件产品 > 消息队列访问管理控制台界面。 3.在消息队列页面,选择区域与部门后,单击MQ,进入MQ控制台。 4.单击左侧导航栏概览后,在概览页面中,单击创建实例。 5.在创建实例对话框,选择实例类型,并输入实例名和描述,然后单击确认。 说明: 创建完实例后,单击左侧导航栏实例详情

RocketMQ与Dubbo相爱相杀引起的FullGC

有些话、适合烂在心里 提交于 2020-12-07 06:46:28
在日常后端开发中,部分业务都是接收MQ消息,在消费消息的过程中,会调用外部的Dubbo接口,根据接口返回数据,做一些业务逻辑处理.如下图 上面会涉及两类线程,一类是MQ线程,一类是Dubbo线程. Dubbo接口调用超时也是经常会发生的事情,这篇文章中,我们模拟的情况是,让Dubbo接口调用超时,图中红线所示.然后一直向MQ消费者发送消息,我们观察线程和堆栈的变化. 仓库代码 https: //github.com/infuq/MQ-Dubbo-FullGC 如果需要运行上述代码,还需要部署Zookeeper和RocketMQ环境. 工程结构如下图 Dubbo提供者的接口超时时间设置的是5s.如下图 而在提供者的实现方法中,让线程睡眠20秒,从而达到调用者调用接口超时目的.如下图 接下来按顺序启动它们 首先启动Dubbo提供者(DubboProvider类). 接着启动MQConsumer, 同时需要给它配置VM启动参数 -Xms90M -Xmx90M -XX :+PrintGCDetails 最后启动MQProducer, 它会一直发送消息. 所有的都启动完成之后, 借助JDK自带的jvisualvm.exe工具观察MQConsumer的堆栈信息. 观察MQConsumer的堆栈信息,会发现老年代会一直增长,当老年代快增长到顶端时,手动dump堆栈信息,用于接下来分析堆的情况.

致敬最优秀的同行者们

牧云@^-^@ 提交于 2020-12-06 18:51:37
点 击 上 方 “ 中 间 件 兴 趣 圈 ” , 选 择 “ 设 为 星 标 ” 做 积 极 的 人 , 越 努 力 越 幸 运 ! 真的非常开心,『中间件兴趣圈』公众号粉丝数正式迈过1W大关,达成一个重要里程碑,笔者感慨真的不容易。 2018年10月19号通过公众号发布第一篇文章,到今天为止,公众号已经发表了145篇原创文章,坚持真的很难,但只要能坚持,就一定会有好的收获,这不,你瞧,1W个人与你一起同行,这成就不可谓不大。 在持续坚持努力下,我出版了《RocketMQ技术内幕》一书,从一家名不经传的小公司顺利跳槽到快递物流头部企业:中通快递,让我能在更高的平台上发光发热,使我深深的认识到: 越努力越幸运,唯有坚持不懈 。希望能用这句话与各位粉丝朋友共勉,相互交流,共同成长。 相信各位读者朋友们也能直观的感受到『中间件兴趣圈』主要发表的文章都比较枯燥,因为大部分都是以源码分析为主,认真读完一篇文章需要极大的耐心,我从后台的统计数据上看到,每篇文章的读完率其平均值在50%左右,这足以说明大家拥有强烈的求知欲望,这里必须有掌声,为各自点个赞吧。与各位优秀的读者同行,是我的一大荣幸,未来继续加油。 『中间件兴趣圈』的定位是记录笔者的学习历程与成长历程,同时也起到驱动笔者去学习,给自己提的要求是尽最大努力保证一周一篇原创文章。 绝不注水、绝不洗稿,这是我的初心也是底线。 『中间件兴趣圈

Elasticsearch Search API之(Request Body Search 查询主体

若如初见. 提交于 2020-12-05 18:00:46
preference 查询选择副本分片的倾向性(即在一个复制组中选择副本的分片值。默认情况下,es以未指定的顺序从可用的碎片副本中进行选择,副本之间的路由将在集群章节更加详细的介绍 。可以通过该字段指定分片倾向与选择哪个副本。preference可选值: _primary 只在节点上执行,在6.1.0版本后废弃,将在7.x版本移除。 _primary_first 优先在主节点上执行。在6.1.0版本后废弃,将在7.x版本移除。 _replica 操作只在副本分片上执行,如果有多个副本,其顺序随机。在6.1.0版本后废弃,将在7.x版本移除。 _replica_first 优先在副本分片上执行,如果有多个副本,其顺序随机。在6.1.0版本后废弃,将在7.x版本移除。 _only_local 操作将只在分配给本地节点的分片上执行。_only_local选项保证只在本地节点上使用碎片副本,这对于故障排除有时很有用。所有其他选项不能完全保证在搜索中使用任何特定的碎片副本,而且在索引更改时,这可能意味着如果在处于不同刷新状态的不同碎片副本上执行重复搜索,则可能产生不同的结果。 _local 优先在本地分片上执行。 _prefer_nodes:abc,xyz 优先在指定节点ID的分片上执行,示例中的节点ID为abc、xyz。 shards:2,3 将操作限制到指定的分片上执行。(这里是2和3

B站疯传、GitHub标星80k!阿里限量“Java架构技术提升笔记”,堪称惊艳!

本秂侑毒 提交于 2020-12-04 11:29:47
前言 “马云”,中国首富之一,提起马云和淘宝大家肯定首先想到的就是“阿里巴巴”,Alibaba旗下有蚂蚁金服、支付宝、阿里云、阿里软件等等知名子公司,形成了一个庞大的商业帝国。这么庞大的商业帝国除了优秀的管理,技术的重要性肯定少不了的,毕竟Alibaba可以说是突显中国程序员最高水平的典范。 就在前段时间,阿里资深架构师抛出的“Java架构技术提升笔记”,以多维度、全新展示及其超高专业度的突出特点,迅速在B站疯传,且GitHub已标星80k。 知道你们懒得整理,我已经为大家整理好了,如果你想要提升自己的技术,需要完整版的朋友 点击这里 即可快速跳转完全免费领取下载通道! Java架构技术提升笔记(附成长路线图) 一、分布式与微服务架构思维 1.大型互联网架构演进过程( 如何把应用从单机扩展到分布式+大型分布式架构演进过程 ) 2.架构师应具备的分布式知识( SOA架构和微服务架构+分布式架构下的高可用设计+分布式架构下的可伸缩设计+分布式架构下的高性能设计 ) 3.主流分布式架构设计详解( 分布式储存方案.+分布式动静分离方案+分布式搜索引擎方案+分布式应用发布与监控方案+容灾及机房规划方案+系统动态扩容 ) 4.微服务架构( 手把手设计微服务架构+微服务MicroService与SOA+微服务的划分原则+微服务与spring+微服务与springcloudAlibaba ) 二、

致敬最优秀的同行者们

余生颓废 提交于 2020-12-03 07:42:11
做 积 极 的 人 , 越 努 力 越 幸 运 ! 真的非常开心,『中间件兴趣圈』公众号粉丝数正式迈过1W大关,达成一个重要里程碑,笔者感慨真的不容易。 2018年10月19号通过公众号发布第一篇文章,到今天为止,公众号已经发表了145篇原创文章,坚持真的很难,但只要能坚持,就一定会有好的收获,这不,你瞧,1W个人与你一起同行,这成就不可谓不大。 在持续坚持努力下,我出版了《RocketMQ技术内幕》一书,从一家名不经传的小公司顺利跳槽到快递物流头部企业:中通快递,让我能在更高的平台上发光发热,使我深深的认识到: 越努力越幸运,唯有坚持不懈 。希望能用这句话与各位粉丝朋友共勉,相互交流,共同成长。 相信各位读者朋友们也能直观的感受到『中间件兴趣圈』主要发表的文章都比较枯燥,因为大部分都是以源码分析为主,认真读完一篇文章需要极大的耐心,我从后台的统计数据上看到,每篇文章的读完率其平均值在50%左右,这足以说明大家拥有强烈的求知欲望,这里必须有掌声,为各自点个赞吧。与各位优秀的读者同行,是我的一大荣幸,未来继续加油。 『中间件兴趣圈』的定位是记录笔者的学习历程与成长历程,同时也起到驱动笔者去学习,给自己提的要求是尽最大努力保证一周一篇原创文章。 绝不注水、绝不洗稿,这是我的初心也是底线。 『中间件兴趣圈』现阶段主要以源码分析为手段成体系剖析JAVA主流中间件

2019 新浪 java面试笔试题 (含面试题解析)

跟風遠走 提交于 2020-12-03 06:26:11
   本人5年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、新浪等公司offer,岗位是Java后端开发,因为发展原因最终选择去了新浪,入职一年时间了,也成为了面试官,之前面试了很多家公司,感觉大部分公司考察的点都差不多,趁空闲时间,将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。    下面提的问题可以看下你自己是否能回答出来,是否做好准备了,当然面试题准备是一方面,你本身的技能掌握是一方面,本身技能不过硬也会被刷下来,下面的图是进阶体系图可以参考下,还有个架构的体系图太大了,传不上来,里面有些备注是processon画的,图片也展示不出来,只能麻烦大家去网盘获取了 <font color=red siz=12> (PS:再次编辑,感谢大家的支持,受宠若惊。私信问我要这些面试答案的,希望交流的朋友很多,但是很多不能及时看到,没办法一个个发给大家,大家注意下中间的百度网盘链接,整理成了pdf分享下给大家,也包括我之前面试准备的题跟视频,也可以进群交流,这样沟通成本少点) </font> 鼠标右键点击,新标签页中打开图片 面试流程   先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就新浪而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现,第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面

2019 拼多多java面试笔试题 (含面试题解析)

假装没事ソ 提交于 2020-12-03 04:15:55
本人3年开发经验、18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴、今日头条、拼多多等公司offer,岗位是Java后端开发,最终选择去了拼多多。 面试了很多家公司,感觉大部分公司考察的点都差不多,所以将自己的心得记下来,希望能给正在找或者准备找工作的朋友提供一点帮助。另外,目前在拼多多也做面试官的工作,身份从求职者变为面试官,看问题的很多角度也不一样,所以下文中既有求职者的视角,也有面试官的视角 <font color=red> (PS:感谢大家的支持,问我要完整面试题的希望交流指导的太多,没办法一个个发给大家,大家看下后面链接,整理成了pdf分享下给大家 </font> 面试流程   先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就拼多多而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现,第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面,主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了。 要注意的点 简历一到两页为最佳,将项目经历写2-3个左右就差不多了,一定要写最有亮点的项目 工作经历的起始时间要写清楚,另外大公司都有背调,不要合并或省略一些比较短的工作经历,影响的可能不只是这次面试,而是之后可能都无法进这家公司 博客没什么好文章,github没好项目就不要写在简历中了 对于面试官的问题,想清楚再回答