rocketmq

2019 苏州朗动java面试笔试题 (含面试题解析)

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

Maven/Docker快速搭建RocketMQ

余生长醉 提交于 2019-12-04 11:15:48
官方文档 [ https://rocketmq.apache.org/docs/quick-start/ ] ①:Bin_二进制安装版 1. 环境准备 系统环境:Centos7 x64 JDK:jdk-8u171-linux-x64 Maven:3.2.x以上的版本均可 4g+ free disk for Broker server 2. 下载RocketMQ https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zip 3. 解压 > unzip rocketmq-all-4.4.0-bin-release.zip > cd rocketmq-all-4.4.0/ 4. 根据内存修改配置(默认需要4G+4G 共8G) cd bin vim runserver.sh # 找到如下配置 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" # 修改成你可以接受的范围 JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx521m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" vim runbroker.sh

2019 中钢网java面试笔试题 (含面试题解析)

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

RocketMQ多线程场景生产和消费TPS测试

谁说我不能喝 提交于 2019-12-04 10:11:07
一 机器部署 1、机器组成 7台机器,均为16G内存 每台服务器均有4个CPU,2核 2、运行环境配置 3、刷盘方式 每台机器master机器均采用异步刷盘方式 二 性能评测 1、评测目的 多线程环境下,测试producer端的TPS 和 consumer端的TPS。 2、评测指标 (1)生产者producer TPS、线程个数、发送成功数量、发送失败数量、接收成功数量、接收失败数量、发送消息成功总耗时。 (2)消费者consumer TPS、接收消息总数、消息存储总耗时,消息存储平均耗时、消息消费总耗时、消息消费平均耗时。 3、评测逻辑 (1)固定消息长度,producer端发送消息body的字符串默认100字符长度。 (2)输入不同的线程数,产生不同组的producer,记录发送消息的TPS、发送成功数和消息消费的TPS、消费成功数等等。 (3)根据多组测试数据,分析平均的生产TPS和平均消费TPS。 4、评测步骤 (1)创建性能测试的topic,名称为BenchmarkTopicTest。 队列个数默认8个。 (2)输入线程数、消息长度、是否开启message的key值,并做表格记录TPS。 (3)针对特定场景,保持线程数不变,增加消息message的size,记录producer端和consumer端的TPS,并做表格记录。 编号 TPS (Producer) TPS

RocketMq 完整部署

可紊 提交于 2019-12-04 09:21:07
目录 RocketMq 部署 环境 物理机部署 自定义日志目录 自定义参数和数据存放位置 服务启动 关停服务 尝试发送消息 常见报错 部署 rockermq console docker 部署 Java 示例 RocketMq 部署 环境 64bit OS, Linux/Unix/Mac is recommended; 64bit JDK 1.8+; Maven 3.2.x; Git; 4g+ free disk for Broker server 物理机部署 下载最新的二进制文件 https://rocketmq.apache.org/docs/quick-start/ 解压 unzip rocketmq-all-4.4.0-bin-release.zip cd rocketmq-all-4.4.0-bin-release/ 自定义日志目录 # 在以下文件中替换默认的日志路径 ${user.home}/logs/rocketmqlogs/* conf/logback_broker.xml conf/logback_namesrv.xml conf/logback_tools.xml 自定义参数和数据存放位置 conf 文件夹里有三种配置 2m-noslave 两主,无从的配置 2m-2s-async 两主,两从,同步复制数据的配置 2m-2s-sync 两主,两从

给予消息队列实现分布式事务

寵の児 提交于 2019-12-04 09:03:36
给予消息队列实现分布式事务 场景: 订单系统产生订单,购物车系统减购物车中的商。 实现思路 : 订单系统在消息队列上开启一个事务(没有创建订单)。 订单系统给消息服务器发送一个“半消息”,这个半消息不是说消息内容不完整,它包含的内容就是完整的消息内容,半消息和普通消息的唯一区别是,在事务提交之前,对于消费者来说,这个消息是不可见的。 半消息发送成功后,订单系统就可以执行本地事务了,在订单库中创建一条订单记录,并提交订单库的数据库事务。 然后根据本地事务的执行结果决定提交或者回滚事务消息。如果订单创建成功,那就提交事务消息,购物车系统就可以消费到这条消息继续后续的流程。如果订单创建失败,那就回滚事务消息,购物车系统就不会收到这条消息。 橙色和绿色分别是两个事务。 问题: 步骤4事务提交失败;这时候订单系统本地事务已提交尔购物车系统没有收到消息,造成数据不一致。 如何解決消息队列事务提交过程出现的异常: kafka会直接抛出异常用户自行处理; 在RocketMQ中的事务实现中,增加了 事务反查 的机制来解决事务消息提交失败的问题 , RocketMQ的Broker没有收到提交或者回滚的请求,Broker会定期去producer上反查这个事务对应的本地事务的状态,然后根据反查结果决定提交或者回滚这个事务。 为了支持事务反查机制

消息队列总结

牧云@^-^@ 提交于 2019-12-04 08:29:52
消息队列 本文内容思维导图: 消息队列总结 一 什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ,我们后面会一一对比这些消息队列。 另外,我们知道队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。比如生产者发送消息1,2,3...对于消费者就会按照1,2,3...的顺序来消费。但是偶尔也会出现消息被消费的顺序不对的情况,比如某个消息消费失败又或者一个 queue 多个consumer 也会导致消息被消费的顺序不对,我们一定要保证消息被消费的顺序正确。 除了上面说的消息消费顺序的问题,使用消息队列,我们还要考虑如何保证消息不被重复消费?如何保证消息的可靠性传输(如何处理消息丢失的问题)?......等等问题。所以说使用消息队列也不是十全十美的,使用它也会让系统可用性降低、复杂度提高,另外需要我们保障一致性等问题。 二 为什么要用消息队列 使用消息队列主要有两点好处: 1.通过异步处理提高系统性能(削峰、减少响应所需时间); 2.降低系统耦合性。 (1) 通过异步处理提高系统性能(削峰、减少响应所需时间)

为什么亿级流量的电商网站要使用消息队列?

淺唱寂寞╮ 提交于 2019-12-04 06:58:13
为什么亿级流量的电商网站要使用消息队列? 面试题 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景? 面试官心理分析 其实面试官主要是想看看: 第一 ,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从头到尾都没思考过。 没有对自己的架构问过为什么的人,一定是平时没有思考的人,面试官对这类候选人印象通常很不好。因为面试官担心你进了团队之后只会木头木脑的干呆活儿,不会自己思考。 第二 ,你既然用了消息队列这个东西,你知不知道用了有什么好处&坏处? 你要是没考虑过这个,那你盲目弄个 MQ 进系统里,后面出了问题你是不是就自己溜了给公司留坑?你要是没考虑过引入一个技术可能存在的弊端和风险,面试官把这类候选人招进来了,基本可能就是挖坑型选手。就怕你干 1 年挖一堆坑,自己跳槽了,给公司留下无穷后患。 第三 ,既然你用了 MQ,可能是某一种 MQ,那么你当时做没做过调研? 你别傻乎乎的自己拍脑袋看个人喜好就瞎用了一个 MQ,比如 Kafka,甚至都从没调研过业界流行的 MQ 到底有哪几种。每一个 MQ 的优点和缺点是什么。每一个 MQ 没有绝对的好坏

RocketMQ 主从同步若干问题答疑

我的未来我决定 提交于 2019-12-04 06:57:39
目录 1、初识主从同步 2、提出问题 3、原理探究 3.1 RocketMQ主从读写分离机制 3.2 消息消费进度同步机制 4、总结 温馨提示:建议参考代码RocketMQ4.4版本,4.5版本引入了多副本机制,实现了主从自动切换,本文并不关心主从切换功能。 @(本节目录) 1、初识主从同步 主从同步基本实现过程如下图所示: RocketMQ 的主从同步机制如下: A. 首先启动Master并在指定端口监听; B. 客户端启动,主动连接Master,建立TCP连接; C. 客户端以每隔5s的间隔时间向服务端拉取消息,如果是第一次拉取的话,先获取本地commitlog文件中最大的偏移量,以该偏移量向服务端拉取消息; D. 服务端解析请求,并返回一批数据给客户端; E. 客户端收到一批消息后,将消息写入本地commitlog文件中,然后向Master汇报拉取进度,并更新下一次待拉取偏移量; F. 然后重复第3步; RocketMQ主从同步一个重要的特征:主从同步不具备主从切换功能,即当主节点宕机后,从不会接管消息发送,但可以提供消息读取。 温馨提示:本文并不会详细分析RocketMQ主从同步的实现细节,如大家对其感兴趣,可以查阅笔者所著的《RocketMQ技术内幕》或查看笔者博文:https://blog.csdn.net/prestigeding/article/details

第三方推送方案选择

末鹿安然 提交于 2019-12-04 06:43:17
背景 第三方介入开放平台后,开放平台需要将设备状态、属性等值发给第三方,目前使用的方案是HTTP方式推送,但是由于数据量大,使用HTTP推送有很大的局限性; 经过评估,使用rocketmq可很好的解决该问题; 解决方案 开放平台将设备状态、属性值等资源发送到MQ,第三方消费对应的topic即可 安全方案 利用rocketmq的acl功能,开放平台使用admin权限,根据appid将设备信息发送到对应的topic,然后再开放平台上开放指定的topic的订阅权限 技术评估 官网地址: http://rocketmq.apache.org/ 下载安装包及源码地址: https://github.com/apache/rocketmq ACL权限控制: https://github.com/apache/rocketmq/blob/master/docs/cn/acl/user_guide.md rocketmq console支持acl issue: https://github.com/apache/rocketmq-externals/pull/244 该功能未上线,master代码也无 多topic时,rocketmq性能影响: https://www.cnblogs.com/felixzh/p/6198174.html ----rocketmq支持万级别的topic