原创 头条终面:写个消息中间件

发布时间:2021-08-02 11:13:33 浏览 4958 来源:猿笔记 作者:yes的练级攻略

    这种设计类问题想必大家都不陌生。这个面试题来自于一个读者的字节面试经历。我会从面试技巧和消息中间件的设计两个方面阐述,**我觉得重点在于面试技巧。大多数同学遇到这种问题会出现两种极端的情况,会问一些提示性的问题,很多把面试官当成一个莫得感情的提问机器人,你需要引导面试官来询问你的长处,正确的回答姿势是BFS(广度优先搜索)而不是DFS(深度优先搜索),就是我们需要**先从大局上讲出需要设计的东西的重点,然后再等待面试官的继续提问,从他的提问可以看出他想要知道的重点是哪个方向的,你**简单的**把获取、写入、冲突处理、扩容啥的都说了。


    每个时代,会学习的人都不会被亏待。

    大家好,我是yes。

    这种设计问题大家肯定都很熟悉,面试的时候或多或少都会遇到。

    怎么写线程池?如何写一个HashMap?如何编写一个RPC框架等。当然,这里写的并不是真的要求你用代码写,只是说设计理念和整体架构。

    这个采访问题来自一个读者的字节采访经历。我会详细阐述面试技巧和消息中间件的设计。

    * *我觉得重点是面试技巧,因为它具有普遍性。**

    # #两种极端情况

    大多数学生遇到这种问题,会有两种极端情况:

    ——第一种:一脸不解,两眼无神,不知从何说起,所有的思绪都化作一声叹息。

    ——第二种:嘴里说得像只gatling,哒哒哒哒,闯关东火。

    不用说,更好的面试官可能会引导你,问一些有启发性的问题,一步一步把你带入更好的境地。当然如果胸无大志,那就没救了,场面会极其尴尬。

    第二种会完全欺骗面试官。也许你真的知道很多很多细节都很清楚,但是你不能全扔了,会让你失去重心。

    # #面试官也是人

    其实这一点很关键。很多人把面试官当成一个情绪化的提问机器人,认为他能把一切都引到你的点上。他们不知道你引以为豪的细节,但他可能觉得你说的是蛇皮。

    * *人如果有感情,就需要沟通* *。一个好的面试官会控制整体进度,从广阔的家庭做起,把场地搞得火热,一步一步深入挖掘。

    当然也有一些面试官比较弱。这时候你需要特意* *流出来一点空白,让面试官能涂鸦* *,让面试官觉得你很舒服,你的浪也稳了。

    当然,即使面对控制全场的面试官,你也要主动。每个人都有自己的优点。你需要引导面试官询问你的优势。

    # #正确的回答姿势

    正确的回答姿势是BFS(广度优先搜索)而不是DFS(深度优先搜索)。什么意思?

    就是需要* *从大局出发,讲出需要设计的重点,然后等面试官继续提问,深入挖掘* *。

    我们需要深思面试官的心理。从他的提问可以看出他想知道哪个方向。

    以HashMap为例。你* *简单* *的聊得到,写,冲突处理,拓展,然后等面试官下一个问题。它可能深入到线程安全,也可能向扩展方向挖掘,比如Redis的hash扩展。

    所以,给面试官一个提问的机会,把握他的喜好或者熟悉的方向来回答,这样如果你回答的好,和对方交谈,面试官会高度认可你。

    而且在说设计要点的时候要注意停顿,给面试官留一个插话的机会,让面试官充分参与你的设计。

    我们以HashMap为例。举个例子,如果你在谈到得到、写作、冲突之后停顿了一下,那么面试官会问还有没有别的。让面试官有参与感,* *让他觉得设计是在他的指导下逐渐完善的。

    当然,你不问也没关系。停下来继续说。

    * *让面试变成技术交流,这是面试的最高境界。* *我相信面试结束后,双方都会有一种意犹未尽的感觉。互相欣赏就是这么来的。

    但是,这种场景并不是那么容易遇到的。首先,你和面试官应该有相同的喜好。比如你对JVM有很深的研究,而面试官对存储有很深的研究,但是JVM理解不深,所以没有火花。

    所以很多人会遇到这样的情况:我挂了这家公司,而另一家公司优越,这很正常。

    当然,如果你说你无所不能,那就算了。

    # #总结面试技巧

    首先,正确看待面试官。你和面试官一样。你来的时候不要卑躬屈膝。

    其次,回答问题需要把握重点,不要把自己知道的都讲出来,留白让面试官提问。

    我们要控制好面试的节奏,把它引向我们熟知的方向。

    # #如何编写消息中间件

    接下来,我们来看看如何编写消息中间件。

    首先,我们需要明确提出消息中间件的几个重要角色,生产者、消费者、经纪人和注册中心。

    简单描述一下消息中间件的数据流流程,就是生产者生成消息并发送给Broker。代理可以挂起消息,然后消费者从代理获得消息用于消费。

    注册中心对服务的发现包括代理发现、生产者发现、消费者发现,当然还有离线发现。可以说,服务的高可用性是密不可分的

作者信息

yes的练级攻略 [等级:3] 公众号:yes的练级攻略
发布了 71 篇专栏 · 获得点赞 1014 · 获得阅读 102628

相关推荐 更多