面试复盘|字节抖音后端一面面经
2022.4.11
1、自我介绍
2、rpc流程
3、rpc分为几个模块(这里我记不清了,我说的是服务端,注册中心,客户端,然后他说不要讲流程,讲具体的模块,然后我说网络、序列化、处理,扯了半天)
4、rpc使用的协议(Netty用的tcp),还有吗(没了),序列化协议(四种),序列化后得到什么(二进制数据),JSON和ProtoBuf,JSON也是二进制吗(不知道了)
5、DNS了解吗(DNS流程,讲到权限域名服务器的时候他问我什么是权限域名服务器,我就开始扯,实际上我记错了,应该是权威)
6、DNS拦截了解吗(不了解)
7、get和post的区别(参数在url和表单),还有吗(想不起来了,忘了)
8、如果输入用户名和密码用get还是post(post,因为需要保密,不能显式地出现在地址中)
9、post就能保密吗(不能,要安全还需要https和对数据进行加密)
10、https流程(刚讲到签名就被打断了),为什么要用私钥签名,公钥验证(我不知道。。。密码学里有没有讲我也忘了),然后这题就过去了
11、数据库为什么要读写分离(主写从读,读的请求一般更多)
12、如何保持主从一致性(主从复制,binlog),这样还没更新时不就不一致了吗(半同步复制),这样性能不就差了吗(扯不动了,说要权衡吧)
13、何时要分库分表(数据量太大时),有多大(几百万千万?),怎么知道的(愣住),经验是吗
14、100亿个数据,512M内存,如何找出中位数(归并),别的方法呢(不会)
15、Redis哨兵了解吗(哨兵监控)
16、Redis除了主从和哨兵还有什么部署方式(集群),多个主库如何实现(太久没看了,忘了)
17、Redis数据结构(字符串,链表,哈希表,集合,有序集合)
18、讲讲Redis的哈希表(两张表,一张存数据,一张负责扩容),扩容是一次性的吗(不是,是渐进式的,扩容操作分布在每次执行增删改查时)
算法题
两个链表相加。
输入:1,2,3,6 3,5
输出:1,2,7,1
我的思路:先翻转链表,再相加,再翻转
总结
问的都挺基础的,但我昨天发烧了= =,没咋准备,有挺多没答上来。
算法倒是挺简单的,希望能过吧。。。
#面试复盘##实习##面经##字节跳动#