关于面试准备(spring 与分布式)

2020-04-09 16:13:53 +08:00
 zxc1234

关于大厂面试准备

1.最近面试会被问到分布式,答的不好,想问下需要准备哪些内容呢?要会到什么程度呢?

比如 cap 要懂?哪些场景下 c 和 a 不能一起存在?

比如分布式事务,要能说出 2 阶段提交协议的过程?三阶段提交需要了解吗?

还有哪些一定要掌握的呢?要掌握到什么程度呢?

2.关于 spring bean 生命周期

最近老是背了然后过了会就忘了,想理解性记忆,可是实际开发中这些又没涉及到?怎么掌握呢?

各位大神们,你们有什么好办法记住 spring 生命周期吗

3.APPEND:关于 Rocketmq

工作好几年了,面试总是被问到中间件,想问下 Rocketmq 有经典书籍可以推荐下吗

谢谢各位大佬

3221 次点击
所在节点    程序员
14 条回复
chihiro2014
2020-04-09 16:20:43 +08:00
Spring 这块完全可以去看知秋的视频啊。讲的深入而且不难。而且他也在翻译 mit 6.824 也就是分布式这块的内容。你可以去 B 站搜下,讲的肯定比培训机构更好,而且实战中更能应用得到,可以去这个上面看
https://space.bilibili.com/2494318
DebugTy
2020-04-09 16:24:21 +08:00
spring bean 生命周期不用背,你看下 AbstractBeanFactory#getBean 方法,仔细看下你就了解了一系列的问题。
l8g
2020-04-09 16:41:35 +08:00
1. 我理解,在任何分布式的场景下,对于 CAP 理论,在 P 的前提下,C 和 A 是不能同时满足的。
分布式事务的这些东西,按你的描述你应该没有什么实践的经验,对于面试多背几种肯定是更好一些的。
2. 怎么记住生命周期不会忘,这个确实没啥办法,一般去看源码、自己再做一些总结记录印象会深刻一些。CRUD 一般不会关注这个。面试中问 Spring 确实挺烦的。
3. 消息中间件有很多种,不一定非要是 RocketMQ 。不同的消息中间件在功能和设计理念上会有一定的差别。比如 RocketMQ 和 Kafka 的差别你要知道,然后对于你项目中使用的消息中间件要深究一些。
zxc1234
2020-04-09 18:25:54 +08:00
@l8g 第一点对于 CAP 理论,在 P 的前提下,C 和 A 是不能同时满足的

我是不是可以理解成 由于 P,C 和 A 是不能同时满足的

第二点,分布式事务没有实践经验,靠背可以?

第三点,目前项目中没用过消息中间件,我是打算选择 RocketMQ 作为学习对象
h123123h
2020-04-09 18:59:47 +08:00
大厂不会只问你表面的。
mtrec
2020-04-09 20:25:12 +08:00
@zxc1234
在出现故障的时候 CAP 只能 3 选 2 而一般 p 都是必选的 所以只在 c 跟 a 中选择

没有经验可以自己写点小 demo 有个感觉总比背强

可以 这些消息中间件都是互相借鉴 原理差不多
zxc1234
2020-04-09 23:02:10 +08:00
@h123123h 那会问啥,能举个例子吗
Takamine
2020-04-09 23:03:07 +08:00
CAP 的话我是拿 Eureka 和 Zookeeper 作比较来看的。

……Bean 的生命周期估计就得打断点跟进去看源码吧,各种处理器和 aware 的_(:з」∠)_,顺道还有三级缓存和解决循环依赖问题。

MQ 的话,感觉会和分布式事务放到一起谈,还有各种消息传达的可靠性,跟 Kafka 的比较之类的。
chihiro2014
2020-04-09 23:20:58 +08:00
@Takamine 打断点不是最佳办法啊。。。而且跟来跟去很容易迷失方向。Spring 的循环依赖问题,其实文档里面有讲,可以去看下。他们翻译了部分 Spring 文档来着,应该是在核心容器那里面
https://www.simviso.com/doc/spring-framework-5.2.x-cn/
Takamine
2020-04-09 23:31:15 +08:00
@chihiro2014 我之前就是跟着断点进去的,然后再看看博客和流程图。_(:з」∠)_
感谢文档。:doge:
chihiro2014
2020-04-09 23:36:55 +08:00
@Takamine 端点感觉无用信息太多了,之前我也是端点,但有时候也走不明白。后来看了知秋的源码解读。。过于清晰,推荐一看
tiankongzhe
2020-04-10 10:43:58 +08:00
spring bean 原理,建议多 debug 源码,印象会加深,理解的更准。我都是一步一步 debug 过来的,形成了轨迹系列,记录下来 https://juejin.im/post/5de363a5f265da060a521897 https://yaoyuanyy.github.io/2019/12/11/springboot%20%E6%AD%A3%E7%BB%8F%E7%9A%84bean%E4%B8%8E%E4%B8%8D%E6%AD%A3%E7%BB%8F%E7%9A%84bean%E5%AE%9E%E4%BE%8B%E5%8C%96%E8%BF%87%E7%A8%8B%E5%8C%BA%E5%88%AB/ 希望对你帮助
amiwrong123
2020-04-10 19:31:47 +08:00
@chihiro2014
感觉好视频的播放量而且还这么高
chihiro2014
2020-04-10 21:23:52 +08:00
@amiwrong123 其实都没啥人看的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/660840

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX