前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >直击RocketMQ面试,模拟面试,八股文部分解答

直击RocketMQ面试,模拟面试,八股文部分解答

作者头像
35岁程序员那些事
发布2022-09-23 17:54:20
6010
发布2022-09-23 17:54:20
举报
文章被收录于专栏:35岁程序员那些事

直击面试现场,关于RocketMQ面试,还是要上一些比较尖锐的面试题,本篇文章也是要答复“直击RocketMQ面试现场”。

模拟面试现场

站在面试官的角度,他会怎么问你呢?如果你是面试官,我想你会这么问。

面试官问:你熟悉RocketMQ吗?

候选人回答,熟悉RocketMQ,我在业务服务中经常使用它。

面试官问:那你来说说平常都是怎么用的?

候选人回答,我在需要异步处理的业务中使用RocketMQ,并且主要使用了RocketMQ的“pull模式”的消费者客户端,用这个客户端的主要原因是考虑到性能问题。

面试官问:为什么“pull模式”的消费者客户端的性能要高,RocketMQ还支持哪些消费模式?

候选人回答,“pull模式”是Consumer客户端主动的从Broker Server拉取消息,并且它采用监听器来实时的监听消息队列中的消息,我们开发者可以很方便的控制消费消息的速度,其实准确的说不是考虑“性能问题”,而是消费消息的稳定性问题。

RocketMQ除了支持“pull模式”以外,还支持“push模式”和“pop模式”,其中“pop模式”是RocketMQ 5.0中的新特性。

面试官问:面试官此时会觉得你还行,知道的挺多的,那他肯定不会再问类似得问题了,于是他会和你聊一些可以验证你“是否背过八股文的问题”,比如“RocketMQ的Name Server是怎么启动的?”

候选人回答:如果你自己部署过Name Server,那你肯定会知道的,但是没有亲自实战过或者没看过源码,那大概率是不知道的。我们应该这样回答,Name Server的角色是服务端,他主要负责提供消息队列路由信息,所以我们可以通过RocketMQ提供的启动脚本(不记得名称没关系)启动它,启动的过程中会从本地文件中读取持久化的一些配置信息(这些不是消息路由信息,只是一些Name Server中的key-value配置信息),启动成功之后,它就会等待客户端(比如Consumer、Producer和Broker Server)来连接。

面试官问:如果到这里,面试官会再挖一个坑,“你说说,消息路由信息是存储在哪里的”?

候选人回答:如果此时你只是背了一些八股文,你大概率会说“肯定是Name Server中”,但实际上并不是这样的,消息路由信息是存储在Broker Server中的,Broker Server用本地缓存和本地文件来存储消息路由信息,会通过定时心跳的方式,将这些消息路由信息同步到Name Server中。

面试官问:Consumer客户端和Producer客户端怎么获取消息路由信息呢?

候选人回答:每次在生产和消费消息之前,会从本地缓存中获取消息路由信息,如果获取不到,就利用客户端通信渠道,向Name Server发起RPC请求,获取消息路由信息,然后再更新到本地缓存中。

面试官问:“Consumer客户端和Producer客户端的本地缓存中存储的消息路由信息,什么时候会更新了?”

候选人回答:定时器,他们会启动一个定时器,定时的刷新本地缓存中的消息路由信息,并且这个定时器的定时周期可以再启动Name Server时设定,所以Consumer和Producer中的消息路由信息会存在一定的延迟。

好吧,如果到这里面试官大概率已经知道你对RocketMQ已经非常熟悉了。为什么这样说了,RocketMQ的知识点太多了,如果他一个个的问下去,太累了。但是它通过这一系列的比较尖锐的问题考察,发你你确实用过RocketMQ,并且也看过RocketMQ的源码。

当然这个是比较入门级别的面试,更多高级的RocketMQ面试,会在接下来的文章中输出。

总结

咱们在准备面试的时候,一定要多模拟面试一下,多自测下,换位思考,假如你是面试官,你该怎么去问。

公众号初衷

知识输出是笔者的初衷,借助知识输出,能够认识更多的牛人,能够和牛人沟通,也是自己技术提升的一个机会。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构随笔录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档