【面经】4月9日 腾讯/csig/腾讯云/一面/1h30m

news/2024/11/28 17:49:28/

自我介绍

项目:
介绍项目
你这个项目和别人已有系统的项目相比,优势在哪里?如果别人系统的数据要迁到你这个系统里来,应该怎么做?
服务部署有了解吗?一个节点如果只能部署一个服务不是很浪费吗?那如果我要一个服务部署两次,就需要两台服务器?(我反问了为什么会一个服务部署两次呢?他说如果用户量上来了,那一个系统只对应一个服务肯定是不够的,肯定是要分布式部署的,部署多个,然后把流量打到多个服务上)
如果你这个用户量上来了,服务要怎么升级才能抵住高并发的情况?比如你这个子服务要频繁的触发,那如果高并发的情况下,这个服务只部署了一个节点,没有分布式部署的话,效率是不是很低?
如果分布式部署了,数据库和缓存这些怎么同步到每个节点上呢?
如果新的功能要上线,目前是怎么做的?是直接把旧的服务停掉,然后部署新的吗?还是怎么做?
容器了解过吗?(我这里说用到了K8S,所以问了这个。但确实Docker用的不多,就说的没怎么了解)
简历上写了Ingress-Nginx,有了解过Nginx吗?Nginx主要的功能有哪些?(负载均衡,反向代理)
Nginx负载均衡具体是怎么做的?(就说了个轮询,均匀的将请求打到每个服务上,也不知道对不对)

Java(部门是写C++、Python的,所以问的不多):
集合最常见的有List、Set、Map,区别在哪里(说了一下底层实现)
你说List是动态数组,扩容过程是什么?(创建新数组,容量1.5倍)
Set是怎么去重的?(哈希表)
哈希冲突了怎么解决的?(拉链表)
Map也是哈希表,那和Set有什么区别?(这里我还真不知道,我一直看的Map的结构,没看Set。我就说Map不只有链表,还有红黑树,主要是为了优化链表过长时的查询速度)

MySQL:
你们这个项目数据中,文字和图片分别是怎么存的?(文字存字符串,图片用OSS、存链接)
慢sql可能有哪些情况?如何解决?(我说了三个,没用索引;是网络情况;范围查询查询的范围过大,导致遍历的树节点较多,每个节点都是一次IO操作)
如何排查慢sql?(没用索引用explain select;网络情况瞎扯的,就看一下接口请求时间是不是并平常长)
explain select的执行结果只能看索引是否命中吗?有没有其他的作用?(不知道)
索引建立一般有什么原则?(最常用的建立吧)
索引建的越多越好吗?(不是,因为索引一旦建立了,会有两方面的消耗,一个是磁盘占用,一个是数据在更新的时候也会同步更新索引,这些都是性能消耗)
最常用的列建立索引就一定能优化速度吗?(不一定,因为可能这个列可能有很多重复数据)
如果索引命中了查询还是很慢,可能有哪些情况?(说了数据量多,然后提到分库分表)
分库分表,具体是怎么分呢?分了之后数据在不同的地方,那查询数据又是怎么查的呢?(这里说的乱七八糟,本身也不太懂)
MySQL日志了解过吗?(说了一下binlog日志文件)
如果MySQL删除了行数据,发现磁盘占用空间不大,可能有哪些情况?(数据本身是空的,没有填值;删除的数据占用空间本身比较小,不是大数据类型)

计网:
Socket编程了解吗?(有两个编程模型,TCP和UDP的)
TCP编程模型用到了哪些系统调用?(socket/bind/listen/connect/accept/recv/send/close)
connect这个系统调用主要是在干嘛?(TCP三次握手)
三次握手流程说一下(经典八股)
三次握手有数据的交换吗?交换的什么数据?(确认号和序列号)

手撕:
先给了个非递归后续遍历二叉树,我说可能不太能写出来,就换了个:二叉树中有一个数出现了一次,其他的都出现了两次,找到这个树。(遍历 + 异或秒了)

反问:
部门能在说一下吗?(csig、腾讯云、网络产品中心,地点在深圳)
业务是做什么的呢?ToB还是ToC?(ToB)
部门为什么会用Python和C++呢?(IO密集用Python,CPU密集用C++。在IO方面,Python和Java差不多,但是Python本身写起来比较方便)

总结:
除了一些项目相关的开放性问题只能扯几句,大部分都能答上来,体验还行,就是不知道能不能过。。面试官也挺好的。之前听说腾讯问OS、计网比较多,但这次其实一点OS都没问,还是跟部门相关。

待改进:
基础部分
Java:Set和Map的区别还得再看一下MySQL慢SQL有哪些情况,怎么排查,怎么解决?explain有哪些作用MySQL日志能不能查看SQL语句执行速度?
项目部分,看一些常见的服务升级方案
分布式服务部署MySQL分库分表Nginx相关的


http://www.ppmy.cn/news/1418553.html

相关文章

rocketmq面试

broker主从复制机制 同步复制: 等Master和Slave均写成功后,才反馈给客户端写成功状态; 如果Master出故障, Slave上有全部的备份数据,容易恢复,但是同步复制会增大数据写入延迟,降低系统吞吐量。…

今天掏心窝子!聊聊35岁了程序员何去何从?

今天的内容不聊技术,聊聊轻松的话题,脑子高速转了好几周,停下来思考一下人生…… 不对,关于35岁的问题好像也不轻松,些许有点沉重,反正不是技术,不用高速转动脑细胞了,哈哈。 兄弟…

Git 自定义命令

前言 在使用 hexo 搭建个人博客时,共两种部署的方法。分别为: 本地利用 hexo 的插件 hexo-deployer-git 来实现部署,缺点是需要多敲几个命令行且不方便对源码进行云端备份使用 Github Action 的 workflow 自动化部署,优势就是可…

韩顺平 | 零基础快速学Python(12) OOP基础

面向对象编程-基础 类与对象 类提供了把数据和功能绑定在一起的方法。创建新类时创建了新的对象类型,从而能够创建该类型的新实例/对象。 类时抽象的概念,作为数据类型代表一类事物;对象时具体实际的,作为实例代表具体事物&…

Web 题记

[极客大挑战 2019]LoveSQL 看到这种就肯定先想到万能密码,试试,得到了用户名和密码 总结了一些万能密码: or 11 oror admin admin-- admin or 44-- admin or 11-- admin888 "or "a""a admin or 22# a having 11# a havin…

C++中的vector容器

一. 基本概念 1. 包含在头文件 #include <vector> 2. 功能: 模拟了一个动态数组 3. 底层实现 首先开辟一定大小的数组 随着元素的增加&#xff0c;如果空间不够之后 自动采取扩容机制 -> 自增长 扩容规则&#xff1a;以原空间大小的 2 倍重新开辟一块空间 将就空…

Spring中基于事件监听驱动 和 线程池的异步任务

文章目录 事件监听驱动 与 异步事件源ApplicationContextAware接口 发布事件事件实体监听事件实现异步注入綫程池 事件驱动机制&#xff0c;与MQ消息队列比较 事件监听驱动 与 异步 事件监听驱动优点&#xff1a;解耦&#xff0c;将 事件和业务进行解耦&#xff0c;通过Asyc注解…

FMix: Enhancing Mixed Sample Data Augmentation 论文阅读

1 Abstract 近年来&#xff0c;混合样本数据增强&#xff08;Mixed Sample Data Augmentation&#xff0c;MSDA&#xff09;受到了越来越多的关注&#xff0c;出现了许多成功的变体&#xff0c;例如MixUp和CutMix。通过研究VAE在原始数据和增强数据上学习到的函数之间的互信息…