Java进阶面试系列之一:哥们,大家的系统架构中为何要引入消息中间件?

欢迎关注微信公众号:石杉的架构笔记(id:shishan100)面试

个人新课**《C2C 电商系统微服务架构120天实战训练营》在公众号儒猿技术窝**上线了,感兴趣的同窗,能够点击下方连接了解详情:算法

《C2C 电商系统微服务架构120天实战训练营》性能优化

这篇文章开始,咱们把消息中间件这块高频的面试问题来给你们说一下,也会涵盖一些MQ中间件常见的技术问题。假如说面试官看你简历里写了MQ中间件的使用经验,极可能会有以下的问题:大家公司生产环境用的是什么消息中间件?为何要在系统里引入消息中间件?引入消息中间件以后会有什么好处以及坏处?好,咱们一个个的来分析!微信

1、大家公司生产环境用的是什么消息中间件?

这个首先你能够说下大家公司选用的是什么消息中间件,好比用的是RabbitMQ,而后能够初步给一些你对不一样MQ中间件技术的选型分析。markdown

举个例子:好比说ActiveMQ是老牌的消息中间件,国内不少公司过去运用的仍是很是普遍的,功能很强大。网络

可是问题在于无法确认ActiveMQ能够支撑互联网公司的高并发、高负载以及高吞吐的复杂场景,在国内互联网公司落地较少。并且使用较多的是一些传统企业,用ActiveMQ作异步调用和系统解耦。架构

而后你能够说说RabbitMQ,他的好处在于能够支撑高并发、高吞吐、性能很高,同时有很是完善便捷的后台管理界面可使用。并发

另外,他还支持集群化、高可用部署架构、消息高可靠支持,功能较为完善。app

并且通过调研,国内各大互联网公司落地大规模RabbitMQ集群支撑自身业务的case较多,国内各类中小型互联网公司使用RabbitMQ的实践也比较多。异步

除此以外,RabbitMQ的开源社区很活跃,较高频率的迭代版本,来修复发现的bug以及进行各类优化,所以综合考虑事后,公司采起了RabbitMQ。

可是RabbitMQ也有一点缺陷,就是他自身是基于erlang语言开发的,因此致使较为难以分析里面的源码,也较难进行深层次的源码定制和改造,毕竟须要较为扎实的erlang语言功底才能够。

而后能够聊聊RocketMQ,是阿里开源的,通过阿里的生产环境的超高并发、高吞吐的考验,性能卓越,同时还支持分布式事务等特殊场景。

并且RocketMQ是基于Java语言开发的,适合深刻阅读源码,有须要能够站在源码层面解决线上生产问题,包括源码的二次开发和改造。

另外就是Kafka。Kafka提供的消息中间件的功能明显较少一些,相对上述几款MQ中间件要少不少。

可是Kafka的优点在于专为超高吞吐量的实时日志采集、实时数据同步、实时数据计算等场景来设计。

所以Kafka在大数据领域中配合实时计算技术(好比Spark Streaming、Storm、Flink)使用的较多。可是在传统的MQ中间件使用场景中较少采用。

PS:若是你们对上述一些MQ技术还没在本身电脑部署过,没写几个helloworld体验一下的话,建议先上各个技术的官网找到helloworld demo,本身跑一遍玩玩

2、为何在大家系统架构中要引入消息中间件?

回答这个问题,其实就是让你先说说消息中间件的常见使用场景。

而后结合大家自身系统对应的使用场景,说一下在大家系统中引入消息中间件是解决了什么问题。

1)系统解耦

假设你有个系统A,这个系统A会产出一个核心数据,如今下游有系统B和系统C须要这个数据。

那简单,系统A就是直接调用系统B和系统C的接口发送数据给他们就行了。

整个过程,以下图所示。

可是如今要是来了系统D、系统E、系统F、系统G,等等,十来个其余系统慢慢的都须要这份核心数据呢?以下图所示。

你们可别觉得这是开玩笑,一个大规模系统,每每会拆分为几十个甚至上百个子系统,每一个子系统又对应N多个服务,这些系统与系统之间有着错综复杂的关系网络。

若是某个系统产出一份核心数据,可能下游无数的其余系统都须要这份数据来实现各类业务逻辑。

此时若是你要是采起上面那种模式来设计系统架构,那么绝对你负责系统A的同窗要被烦死了。

先是来一我的找他要求发送数据给一个新的系统H,系统A的同窗要修改代码而后在那个代码里加入调用新系统H的流程。

一会那个系统B是个陈旧老系统要下线了,告诉系统A的同窗:别给我发送数据了,接着系统A再次修改代码再也不给这个系统B。

而后若是要是某个下游系统忽然宕机了呢?系统A的调用代码里是否是会抛异常?那系统A的同窗会收到报警说异常了,结果他还要去care是下游哪一个系统宕机了。

因此在实际的系统架构设计中,若是所有采起这种系统耦合的方式,在某些场景下绝对是不合适的,系统耦合度太严重。

而且互相耦合起来并非核心链路的调用,而是一些非核心的场景(好比上述的数据消费)致使了系统耦合,这样会严重的影响上下游系统的开发和维护效率。

所以在上述系统架构中,就能够采用MQ中间件来实现系统解耦

系统A就把本身的一份核心数据发到MQ里,下游哪一个系统感兴趣本身去消费便可,不须要了就取消数据的消费,以下图所示。

2)异步调用

假设你有一个系统调用链路,是系统A调用系统B,通常耗时20ms;系统B调用系统C,通常耗时200ms;系统C调用系统D,通常耗时2s,以下图所示。

如今最大的问题就是:用户一个请求过来巨慢无比,由于走完一个链路,须要耗费20ms + 200ms + 2000ms(2s) = 2220ms,也就是2秒多的时间。

可是实际上,链路中的系统A调用系统B,系统B调用系统C,这两个步骤起来也就220ms。

就由于引入了系统C调用系统D这个步骤,致使最终链路执行时间是2秒多,直接将链路调用性能下降了10倍,这就是致使链路执行过慢的罪魁祸首。

那此时咱们能够思考一下,是否是能够将系统D从链路中抽离出去作成异步调用呢?其实不少的业务场景是能够容许异步调用的。

举个例子,你平时点个外卖,咔嚓一会儿下订单而后付款了,此时帐户扣款、建立订单、通知商家给你准备菜品。

接着,是否是须要找个骑手给你送餐?那这个找骑手的过程,是须要一套复杂算法来实现调度的,比较耗时。

可是其实稍微晚个几十秒完成骑手的调度都是ok的,由于实际并不须要在你支付的一瞬间立马给你找好骑手,也没那个必要。

那么咱们是否是就能够把找骑手给你送餐的这个步骤从链路中抽离出去,作成异步化的,哪怕延迟个几十秒,可是只要在必定时间范围内给你找到一个骑手去送餐就能够了。

这样是否是就可让你下订单点外卖的速度变得超快?支付成功以后,直接建立好订单、帐户扣款、通知商家立马给你准备作菜就ok了,这个过程可能就几百毫秒。

而后后台异步化的耗费可能几十秒经过调度算法给你找到一个骑手去送餐,可是这个步骤不影响咱们快速下订单。

固然咱们不是说那些你们熟悉的外卖平台的技术架构就必定是这么实现的,只不过是用一个生活中常见的例子给你们举例说明而已。

因此上面的链路也是同理,若是业务流程支持异步化的话,是否是就能够考虑把系统C对系统D的调用抽离出去作成异步化的,不要放在链路中同步依次调用。

这样,实现思路就是系统A -> 系统B -> 系统C,直接就耗费220ms后直接成功了。

而后系统C就是发送个消息到MQ中间件里,由系统D消费到消息以后慢慢的异步来执行这个耗时2s的业务处理。经过这种方式直接将核心链路的执行性能提高了10倍。

整个过程,以下图所示。

3)流量削峰

假设你有一个系统,平时正常的时候每秒可能就几百个请求,系统部署在8核16G的机器的上,正常处理都是ok的,每秒几百请求是能够轻松抗住的。

可是以下图所示,在高峰期一会儿来了每秒钟几千请求,瞬时出现了流量高峰,此时你的选择是要搞10台机器,抗住每秒几千请求的瞬时高峰吗?

那若是瞬时高峰天天就那么半个小时,接着直接就下降为了每秒就几百请求,若是你线上部署了不少台机器,那么每台机器就处理每秒几十个请求就能够了,这不是有点浪费机器资源吗?

大部分时候,每秒几百请求,一台机器就足够了,可是为了抗那天天瞬时的高峰,硬是部署了10台机器,天天就那半个小时有用,别的时候都是浪费资源的。

可是若是你就部署一台机器,那会致使瞬时高峰时,一会儿压垮你的系统,由于绝对没法抗住每秒几千的请求高峰。

此时咱们就能够用MQ中间件来进行流量削峰。全部机器前面部署一层MQ,平时每秒几百请求你们均可以轻松接收消息。

一旦到了瞬时高峰期,一下涌入每秒几千的请求,就能够积压在MQ里面,而后那一台机器慢慢的处理和消费。

等高峰期过了,再消费一段时间,MQ里积压的数据就消费完毕了。

这个就是很典型的一个MQ的用法,用有限的机器资源承载高并发请求,若是业务场景容许异步削峰,高峰期积压一些请求在MQ里,而后高峰期过了,后台系统在必定时间内消费完毕再也不积压的话,那就很适合用这种技术方案。

下集预告:

关于第三个问题:引入消息中间件以后会有什么好处以及坏处。

咱们将会在下一篇文章:《兄弟,那你说说系统架构引入消息中间件有什么缺点呢?》详细阐述,敬请关注。

END

若有收获,请帮忙转发,您的鼓励是做者最大的动力,谢谢!

一大波微服务、分布式、高并发、高可用的原创系列文章正在路上

欢迎扫描下方二维码,持续关注:

石杉的架构笔记(id:shishan100)

十余年BAT架构经验倾囊相授

**> **推荐阅读:** > > 一、[拜托!面试请不要再问我Spring Cloud底层原理](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Flink.juejin.im%2525252525252F%2525252525253Ftarget%2525252525253Dhttps%252525252525253A%252525252525252F%252525252525252Flink.juejin.im%252525252525252F%252525252525253Ftarget%252525252525253Dhttps%25252525252525253A%25252525252525252F%25252525252525252Fjuejin.im%25252525252525252Fpost%25252525252525252F5be13b83f265da6116393fc7) > > 二、[【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Flink.juejin.im%2525252525252F%2525252525253Ftarget%2525252525253Dhttps%252525252525253A%252525252525252F%252525252525252Flink.juejin.im%252525252525252F%252525252525253Ftarget%252525252525253Dhttps%25252525252525253A%25252525252525252F%25252525252525252Fjuejin.im%25252525252525252Fpost%25252525252525252F5be3f8dcf265da613a5382ca) > > 三、[【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Flink.juejin.im%2525252525252F%2525252525253Ftarget%2525252525253Dhttps%252525252525253A%252525252525252F%252525252525252Flink.juejin.im%252525252525252F%252525252525253Ftarget%252525252525253Dhttps%25252525252525253A%25252525252525252F%25252525252525252Fjuejin.im%25252525252525252Fpost%25252525252525252F5be83e166fb9a049a7115580) > > 四、[微服务架构如何保障双11狂欢下的99.99%高可用](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Flink.juejin.im%2525252525252F%2525252525253Ftarget%2525252525253Dhttps%252525252525253A%252525252525252F%252525252525252Flink.juejin.im%252525252525252F%252525252525253Ftarget%252525252525253Dhttps%25252525252525253A%25252525252525252F%25252525252525252Fjuejin.im%25252525252525252Fpost%25252525252525252F5be99a68e51d4511a8090440) > > 五、[兄弟,用大白话告诉你小白都能听懂的Hadoop架构原理](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Flink.juejin.im%2525252525252F%2525252525253Ftarget%2525252525253Dhttps%252525252525253A%252525252525252F%252525252525252Flink.juejin.im%252525252525252F%252525252525253Ftarget%252525252525253Dhttps%25252525252525253A%25252525252525252F%25252525252525252Fjuejin.im%25252525252525252Fpost%25252525252525252F5beaf02ce51d457e90196069) > > 六、[大规模集群下Hadoop NameNode如何承载每秒上千次的高并发访问](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Flink.juejin.im%2525252525252F%2525252525253Ftarget%2525252525253Dhttps%252525252525253A%252525252525252F%252525252525252Flink.juejin.im%252525252525252F%252525252525253Ftarget%252525252525253Dhttps%25252525252525253A%25252525252525252F%25252525252525252Fjuejin.im%25252525252525252Fpost%25252525252525252F5bec278c5188253e64332c76) > > 七、【[性能优化的秘密】Hadoop如何将TB级大文件的上传性能优化上百倍](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Flink.juejin.im%2525252525252F%2525252525253Ftarget%2525252525253Dhttps%252525252525253A%252525252525252F%252525252525252Flink.juejin.im%252525252525252F%252525252525253Ftarget%252525252525253Dhttps%25252525252525253A%25252525252525252F%25252525252525252Fjuejin.im%25252525252525252Fpost%25252525252525252F5bed82a9e51d450f9461cfc7) > > [八、](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Fjuejin.im%2525252525252Fpost%2525252525252F5bf2c6b6e51d456693549af4)[拜托,面试请不要再问我TCC分布式事务的实现原理坑爹呀!](https://juejin.cn/post/6844903716089233416) [](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Fjuejin.im%2525252525252Fpost%2525252525252F5bf2c6b6e51d456693549af4) > > 九、[【坑爹呀!】最终一致性分布式事务如何保障实际生产中99.99%高可用?](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Fjuejin.im%2525252525252Fpost%2525252525252F5bf2c6b6e51d456693549af4) > > 十、[拜托,面试请不要再问我Redis分布式锁的实现原理!](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Fjuejin.im%2525252525252Fpost%2525252525252F5bf3f15851882526a643e207) > > **十一、****[【眼前一亮!】看Hadoop底层算法如何优雅的将大规模集群性能提高10倍以上?](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Flink.juejin.im%25252525253Ftarget%25252525253Dhttps%2525252525253A%2525252525252F%2525252525252Fjuejin.im%2525252525252Fpost%2525252525252F5bf5396f51882509a768067e)** > > **十二、****[亿级流量系统架构之如何支撑百亿级数据的存储与计算](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Flink.juejin.im%252525252F%252525253Ftarget%252525253Dhttps%25252525253A%25252525252F%25252525252Fjuejin.im%25252525252Fpost%25252525252F5bfab59fe51d4551584c7bcf)** > > 1三、[亿级流量系统架构之如何设计高容错分布式计算系统](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Flink.juejin.im%2525253Ftarget%2525253Dhttps%252525253A%252525252F%252525252Fjuejin.im%252525252Fpost%252525252F5bfbeeb9f265da61407e9679) > > 1四、[亿级流量系统架构之如何设计承载百亿流量的高性能架构](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Flink.juejin.im%25253Ftarget%25253Dhttps%2525253A%2525252F%2525252Fjuejin.im%2525252Fpost%2525252F5bfd2df1e51d4574b133dd3a) > > 1五、[亿级流量系统架构之如何设计每秒十万查询的高并发架构](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Flink.juejin.im%252F%253Ftarget%253Dhttps%25253A%25252F%25252Fjuejin.im%25252Fpost%25252F5bfe771251882509a7681b3a) > > 1六、[亿级流量系统架构之如何设计全链路99.99%高可用架构](https://link.juejin.im/?target=https%3A%2F%2Flink.juejin.im%3Ftarget%3Dhttps%253A%252F%252Fjuejin.im%252Fpost%252F5bffab686fb9a04a102f0022) > > 1七、[七张图完全讲清楚ZooKeeper分布式锁的实现原理](https://link.juejin.im/?target=https%3A%2F%2Fjuejin.im%2Fpost%2F5c01532ef265da61362232ed) > > 1八、[大白话聊聊Java并发面试问题之volatile究竟是什么?](https://juejin.cn/post/6844903730303746061) > > 1九、[大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?](https://juejin.cn/post/6844903731234865160) > > 20、[大白话聊聊Java并发面试问题之谈谈你对AQS的理解?](https://juejin.cn/post/6844903732061159437) > > 2一、[大白话聊聊Java并发面试问题之公平锁与非公平锁是啥?](https://juejin.cn/post/6844903732883226637) > > 2二、[大白话聊聊Java并发面试问题之微服务注册中心的读写锁优化](https://juejin.cn/post/6844903734267510798) > > 2三、[互联网公司的面试官是如何360°无死角考察候选人的?(上篇)](https://juejin.cn/post/6844903734930046989) > > 2四、[互联网公司面试官是如何360°无死角考察候选人的?(下篇)](https://juejin.cn/post/6844903735655661581)**
相关文章
相关标签/搜索