php网站开发技术课程19
web/
2025/10/2 7:43:46/
文章来源:
php网站开发技术课程,19,直播网站源码免费,孝感网站开发培训机构欢迎关注专栏#xff1a;里面定期分享Java架构技术知识点及解析#xff0c;还会不断更新的BATJ面试专题#xff0c;欢迎大家前来探讨交流#xff0c;如有好的文章也欢迎投稿。程序员圈内那点事zhuanlan.zhihu.com经过半年的沉淀#xff0c;加上对MySQL#xff0c;redis…欢迎关注专栏里面定期分享Java架构技术知识点及解析还会不断更新的BATJ面试专题欢迎大家前来探讨交流如有好的文章也欢迎投稿。程序员圈内那点事zhuanlan.zhihu.com经过半年的沉淀加上对MySQLredis和分布式这块的补齐终于重拾面试信心再次出征。鹅厂面试职位go后端开发工程师接受从Java转语言都知道鹅厂是cpp的主战场而以cpp为背景的工程师大都对osnetwork这块要求特别高不像是Java这种偏重业务层的语言.之前面试Java的公司侧重还是在数据结构、网络、框架、数据库和分布式。所以OS这块吃的亏比较大一面基础技术面电话面试随便问了些技术问题最后还问了个LeetCode里面medium级别的算法题偏简单。大概整理回忆了一下redis有没有用过常用的数据结构以及在业务中使用的场景。redis的hash怎么实现的rehash过程讲一下和JavaHashMap的rehash有什么区别redis cluster有没有了解过怎么做到高可用的说说redis的持久化机制为啥不能用redis做专门的持久化数据库存储了不了解tcp/udp说下两者的定义tcp为什么要三次握手和四次挥手tcp怎么保证有序传输的讲下tcp的快速重传和拥塞机制知不知道time_wait状态这个状态出现在什么地方有什么用udp是不可靠的传输如果你来设计一个基于udp差不多可靠的算法怎么设计http与https有啥区别说下https解决了什么问题怎么解决的说下https的握手过程。看你项目里面用了etcd讲解下etcd干什么用的怎么保证高可用和一致性既然你提到了raft算法讲下raft算法的基本流程raft算法里面如果出现脑裂怎么处理有没有了解过paxos和zookeeper的zab算法他们之前有啥区别你们后端用什么数据库做持久化的有没有用到分库分表怎么做的索引的常见实现方式有哪些有哪些区别?MySQL的存储引擎有哪些有哪些区别InnoDB使用的是什么方式实现索引怎么实现的说下聚簇索引和非聚簇索引的区别?有没有了解过协程说下协程和线程的区别算法题一个剑指offer第51题数组中的重复数字大概说下我自己的回答情况redis这块没啥问题具体rehash有印象是渐进式的但是具体原理可能答的有点出入。tcp的 time_wait 这块答的不是很好之前没有了解过quic机制的实现所以问可靠性udp的时候基本上脑子里就照着tcp的实现在说。https这块没啥说的之前项目里面有用到类似的东西研究的比较清楚了。raft算法这个因为刚好在刷答的也凑合不过paxos和zab算法确实不熟悉直接说不会。MySQL这块很熟了包括索引锁事务机制以及mvcc等等没啥说的都已经补齐了。协程和线程主要说了go程和Java线程的区别以及go程的调度模型。面试官提示没有提到线程的有内核态的切换go程只在用户态调度。最后一个算法题首先说使用HashMap来做说空间复杂度能不能降到O(1)后面想了大概5min才想出来原地置换的思路。总得来说答的还行一面就这么过了。二面项目技术面二面从基础技术考察转移到了项目主要问了我下面一些问题针对自己最熟悉的项目画出项目的架构图项目主要的数据表结构。说说项目中使用到的技术点项目的总峰值qps时延。有没有分析过时延出现的耗时分别出现在什么地方项目有啥改进的地方没有如果请求出现问题没有响应如何定位问题说下思路tcp 粘包问题怎么处理然后还问了下缓存更新的模式以及会出现的问题和应对思路除了公司项目之外业余时间有没有研究过知名项目或做出过贡献这一面答的也比较顺利因为都是围绕项目自己很熟悉基本都没有啥问题除了面试官说项目经验稍弱之外其余还不错。三面综合技术面这面面的是阵脚大乱面试官采用刨根问底的方式提问终究是面试经验不够导致面试的节奏有点乱。举个例子其中有个题go程和线程有什么区别答起一个go程大概只需要4kb的内存起一个Java线程需要1.5MB的内存go程的调度在用户态非常轻量Java线程的切换成本比较高。接着问为啥成本比较高因为Java线程的调度需要在用户态和内核态切换所以成本高为啥在用户态和内核态之间切换调度成本比较高我简单说了下内核态和用户态的定义。接着问还是没有明白为啥成本高心里瞬间崩溃没完没了了呀OS这块依旧是痛呀支支吾吾半天放弃了。后面所有的提问都是这种模式结果回答的节奏全无感觉被套路了。大多度都能回答个一二甚至是一二三但是再往后或者再深入的OS层面就GG了。后面问了下项目过程中遇到的最大的挑战以及怎么解决的还问了一个问题定位的问题服务器CPU 100%怎么定位可能是由于平时定位业务问题的思维定势加之处于蒙蔽状态随口就是先查看监控面板看有无突发流量异常接着查看业务日志是否有异常针对CPU100%那个时间段取一个典型业务流程的日志查看最后才提到使用top命令来监控看是哪个进程占用到100%。果然阵脚大乱张口就来捂脸。。。本来正确的思路应该是先用top定位出问题的进程再用top定位到出问题的线程再打印线程堆栈查看运行情况这个流程换平时肯定能答出来但是但是没有但是。还是得好好总结。最后问了一个系统设计题目朋友圈的设计白板上面画出系统的架构图主要的表结构和讲解主要的业务流程如果用户变多流量变大架构将怎么扩展怎样应对这个答的也有点乱直接上来自顾自的用了一个通用的架构感觉毫无亮点。后面反思应该先定位业务的特点这个业务明显是读多写少然后和面试官沟通一期刚开始的方案的用户量性能要求单机目标qps是什么等等在明确系统的特点和约束之后再来设计而不是一开始就是用典型互联网的那种通用架构自顾自己搞自己的方案。面试结果3天后收到短信被拒总结tcp/udphttp和https还有网络这块各种网络模型已经selectpoll和epoll一定要非常熟悉一定要有拿的出手的项目经验而且要能够讲清楚讲清楚项目中取舍设计模型和数据表分布式要非常熟悉常见问题定位一定要有思路操作系统还是操作系统重要的事情说三遍系统设计思路思路思路一定要思路清晰一定要总结下系统设计的流程一点心得平时blog和专栏看的再多如果没有自己的思考不过是过眼云烟根本不会成为自己的东西就像内核态和用户态平常也看过但是没细想突然要自己说还真说不出来这就很尴尬了。勿以浮沙筑高台基础这种东西还是需要时间去慢慢打牢多去思考和总结。赠送面试学习福利资源最近在网上发现一个不错的 PDF 资源《Java 核心面试知识.pdf》分享给大家不光是面试学习你都值得拥有需要的可以电子关注我私信【资料】即可免费获取目录以及部分截图
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85505.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!