再战快手--二面

  1. n!系统设计题。

缓存、线程池等。等间隔分发,例如(1,100),(101,200),保证能命中缓存。当时如果n太大,间隔太小,会计算很久。这里还涉及到大数相乘。

  1. 供应商自动切换,什么时候自动切换?如何决定切换到哪个供应商引擎?如何做到1s切换。
  • 收集产商数据,如果很多客户端反馈出问题的时候,例如调用joinRoom失败,自动切换到另一个产商。
  • 另一个产商,需要考虑当前房间的sdk是否支持某个feature,一些定制的东西,某个版本是否有bug。以及该产商的容量支持情况,全部切换过去,是否支持?
  1. p99 50ms,p9999 500ms,如何优化这个p9999到50ms内。
    思路:
  • 大于500ms的打印出日志,根据链路排查具体原因。
  • 可以利用当时的请求参数,再模拟一遍。定位具体的问题,耗时在哪里?
    例如慢查询、重复调用某个服务,串行运行,下游服务耗时长,gc,未加缓存等。
  1. gc问题如何定位
  • 常用命令,例如jmap查看当前占用最多的内存是哪个类,jstack查看线程执行情况,阿里的arthas等。然后定位到占用最多的对象。
  • 查看gc日志,重点看哪些东西?当前使用的哪种gc算法,用的是fullgc还是young gc。回收前是多少内存,回收后是多少内存。gc的间隔,有什么规律。
  • 利用在线的一些网站,分析规律。
  • MAT/visualvm/arthas:watch/trace方法耗时/反编译类/查看类加载器
  1. 双机房容灾要考虑哪些事情?会出现哪些问题?中间件是有状态的,需要怎么做?
  • 容量如何评估。根据当前实际业务情况,以及cpu使用率,内存占用,磁盘占用情况等作出评估。
  • 将已有流量切换到另外一个域名,接入层切换流量。域名通过长链下发。域名解析替换也可以,但是有dns本地缓存,不够实时。
  • 数据如何做实时同步,出现脑裂问题(孤岛、多个leader)如何解决?zk watcher和轮询并行。有主机房和从机房的概念,出问题时,切换到从机房。
  • 机房恢复后,数据如何同步,赶上了才能再次切换。
  • 某个机房外口出问题的时候(一般内网机房机器能互通),例如电缆被挖了,如何处理?内部流量转发。
  • 我这里主要是考虑了某个机房断电的情况。
  1. 对我的期望?
  • 做某个方向的owner。承担需求评审和技术把关。沉淀一些基础组件。
  • 技术驱动产品,收集已有数据推动产品去落地。
  • 提高影响力,在一级部门和二级部门有较大影响力。
#快手##校招##社招##腾讯##美团#
全部评论
大佬是从字节跳槽吗
点赞 回复 分享
发布于 2022-10-23 22:27 重庆

相关推荐

05-24 12:16
湖南大学 Java
1、全表查询和走索引查询有什么区别呢?为什么左模糊匹配走不了索引查询呢全表查询就是依次扫描表中的每一行,检查是否符合查询条件,时间复杂度为 O(N),效率低,可能耗时较长。而走索引查询是根据索引快速定位到符合条件的行,时间复杂度通常优于 O(N),效率高,能快速返回查询结果。左模糊匹配走不了索引查询是因为其模式是 “% 模糊内容”。当使用左模糊查询时,数据库无法利用索引快速定位到匹配的行。因为索引是按顺序存储的,左模糊匹配需要从第一个字符开始匹配,数据库无法确定从哪里开始查找,只能进行全表扫描。而右模糊匹配(模糊内容 %)或中间模糊匹配(% 模糊内容 %)在一定条件下可以走索引查询。2、流式传输和传统http请求有什么区别吗传统 HTTP 请求 :是面向请求 - 响应模式,客户端发送请求,服务器返回一个完整的响应体,通常是将整个资源(如一个网页、一张图片等)一次性加载完成。例如,当在浏览器中输入一个网址访问网页时,浏览器会发送 HTTP 请求,服务器处理后将整个网页的 HTML 内容作为响应返回给浏览器。浏览器在收到全部内容后进行渲染显示。如果网页内容很大,用户可能需要等待较长时间才能看到完整的内容。流式传输 :数据是分块传输的,客户端可以一边接收数据一边处理,而不需要等待整个数据传输完成。以视频播放为例,在流式传输模式下,视频数据被分割成许多小的数据块。客户端在接收到足够多的数据块后就可以开始播放视频,同时后续的数据块还在持续传输中。这样用户可以快速看到视频的开头部分,而不用等待整个视频下载完成。3、https如何保证安全当客户端(如浏览器)与服务器建立 HTTPS 连接时,服务器会将自己的数字证书发送给客户端。客户端会检查证书的合法性,包括证书是否由受信任的 CA 颁发、证书中的域名是否与访问的域名一致、证书是否在有效期内等。例如,如果用户访问一个银行网站,浏览器会检查该网站提供的证书是否是由权威的 CA(如 VeriSign 等)颁发的,以此来确认用户连接的是真正的银行服务器,而不是假冒的服务器。通过结合对称加密和非对称加密,HTTPS 在通信双方之间建立了一个双向加密的通道。在连接建立的初期,使用非对称加密来协商出一个对称加密的密钥,之后使用对称加密来加密传输的数据。这样既能保证密钥分发的安全性,又能高效地加密大量数据传输,从而确保数据在传输过程中不被窃取或篡改。例如,当用户在电商网站上输入信用卡信息并提交订单时,这些敏感信息通过 HTTPS 加密通道传输,即使数据在网络中被截获,攻击者也很难解密获取真实的信息。
查看3道真题和解析
点赞 评论 收藏
分享
评论
1
20
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务