前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >头,有点秃了。

头,有点秃了。

作者头像
Java3y
发布2022-09-20 16:18:59
4280
发布2022-09-20 16:18:59
举报
文章被收录于专栏:Java3yJava3y

我是y哥的读者,已经毕业几年了,一直在做业务开发,最近想要跳槽,自然就会读读y哥写的对线面试官系列,毕竟现在面试都得搞八股文啊。

回头看了下对线面试官的目录,竟然已经快刷掉一半了,不过到现在好像又已经把前面刷过的忘得七七八八了。但不想那么多了,先过一遍吧。

从Java虚拟机往下就是Spring章节了,而Spring章节有三篇文章:Spring基础、SpringMVC、SpringBean生命周期。没有SpringBoot和SpringCloud是我预料之外的,感觉这两块也是会出很常见的面试题,不知道第二季能不能补上呢。对于Spring这个章节,我很快就刷完了,大多数都是概念理解的东西,要是真问到细节我也记不住。

Spring基础》主要讲了什么是iOC和AOP,进而引出了SpringBean生命周期,而生命周期大概就是在SpringBean的各个重要节点(定义/代理/初始化后/销毁)上提供hook给我们去扩展。

SpringBean生命周期》中间的那些细节我是不太关心的,反正意思到位了,就是提供扩展钩子嘛,顺便理解下循环依赖是怎么解决的,原来就这么回事。

SpringMVC》就是Spring的webmvc模块的内容了,主要就是考察个处理流程,这个背得朗朗上口了:映射器->适配器->拦截器->真实调用->视图解析器,看源码后也就这么个结论,所以不难。

看完了之后,原来Spring就已经提供了这么多扩展,原来拦截器是在这个过程中生效的...总的来说吧,看看这种内容对日常写代码还是有点用的,但不多

Spring章节后就是Redis章节,Redis是内存存储,现在几乎在后端里是标配了。我觉得看Redis比看什么JVM有价值多了,Redis不会用会影响到接口性能,而JVM不会用也不会影响到啥。

Redis基础》挺简单的,就介绍了下在线上什么场景用了Redis,这个我会套回到自己的项目上的,没啥好讲的。而为什么Redis快,那首要原因肯定是内存啊,其次就是非阻塞的IO多路复用机制避免上下文切换所带来的吧。

Redis持久化》这个我们在使用的时候一般都不关注,正如在使用MySQL的时候不关心它是怎么落盘的,因为我们认为就是理所当然的。而AOF/RDB持久化一般都是由维护Redis集群的人所配置的,了解下这个机制是可以的,但对应用开发没多大的帮助。面试要是真问到了,经过这一轮复习,应该也能大致讲讲。

Redis主从架构》和《Redis分片集群》我觉得这个还是得懂的,就在公司里Redis的架构是怎么样的,是cluster 集群模式呢,还是主从模式,还是通过proxy做分片呢,不同的架构会影响到我们对它的使用。

比如,如果我是redis cluster模式,这时候我使用批量的命令,是不是对批量所带来的提升就没那么大了(毕竟已经数据已经被分配到不同的节点了,不还是得分发到不同的节点中进行命令传递),这种架构下可以做什么来尽可能适配批量的命令?比如说hash tag / 计算好key的节点再做并发啥的,而这些是需要了解Redis部署的架构才能理解为啥这样做的。

Redis主从架构》主要讲的是主从架构下,数据同步(完全和部分同步是怎么做的),如果服务器出了问题,那哨兵的选举过程是怎么样的。这个我感觉了解就好了,不会影响到我们正常的使用,出了问题也轮不到我们这些做业务开发的去查。不过可以顺着这些功能,想想其他的存储是不是也类似这么做的。

Redis分片集群》这种架构在互联网里是比较常见了,现在基本出去都说什么分布式,分片集群这种模式就算是分布式了。而要实现数据分发到不同的节点,可以采用官方的Cluster方案,也可以做Proxy,这两种方案各有各的优缺点。原来Cluster方案的Hash槽是16384个,至于为什么这么多,是作者认为的合理值,没有啥大的探讨意义。(求面试的时候别问我这个玩意,真没意思),不过在这侧面可以说明节点之间的网络通信确实是挺大的。

Redis章节总体看下来,看似都是八股文,但如果懂这些东西,会给你在使用Redis的时候有种莫名的信心,即便出了问题也不会太慌。不过如果深挖细节,那确实还是八股文。

Redis章节后面是消息队列,消息队列就只有两篇文章《Kafka基础》和《使用Kafka会考虑什么问题》,没有别的MQ确实挺可惜的,但是估计面试也够用了,一般面试官也不会各种MQ的,反正都是举一反三的嘛。不过,看完我觉得不够细,不够八股文,没有那股味道,都是以线上的角度去聊怎么用Kafka的,很多原理性的东西都没有。虽然我本身不爱看这些东西,但面试就是要啊,希望后面y哥可以补充补充。

Kafka基础》主要是讲了为啥Kafka那么快,这个可以盲猜 顺序写和操作系统cache(我感觉换每种存储都可以这样盲猜,反正思想都是一样的)。。然后再结合Kafka的天然架构,多partition,这不就是并行吗。然后再说说中间的读写做了零拷贝,这就是它能这么快的原因了。

不过零拷贝这个我看完了,也不太好去描述,感觉有点理论性,也挺难记的。知道零拷贝有mmap和sendfile,但描述这个过程我总感觉嘴瓢。。

使用Kafka会考虑什么问题》这个文章就是针对消息不丢失,消息顺序性,结合业务做的解释,没过多的理论在,全凭业务在吹水。不过,如何在client实现至少一次消息,这个还是可以去看看的。

这两天看的这三章,感觉没有那么的八股文,但我又想多点八股文的内容,真TM的矛盾。产生这种矛盾可能就在于,这些在生产环境下是真的有在用的,学了这些真有可能会让自己所维护的程序变得更好,至少不像什么JVM和并发的八股文,看完用不上就立马忘了。

最近看这破八股文,头都大了。

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

本文分享自 Java3y 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档