阿里巴巴一面:
redis 为什么这么快?
redis完全基于数据库
处理网络请求使用的是单线程,避免了不必要的上下文切换和锁的竞争维护
使用了I/O多路复用模型。
秒杀的整个场景是什么?
前端页面使用CDN,页面静态化
js层面,限制用户在x秒内只能提交一次
同一个uid,限制访问频度,做页面缓存,x秒内,都是一个请求
流量过大可以使用验证码
请求链接独立部署,使用令牌通算法
缓存数据库同步?
写,使缓存失效,写数据库,在使缓存失效
读,命中返回,没有,访问数据库
10亿请求过来,前端怎么处理,后端怎么处理?
前端,ip限流,一秒内,允许多少个请求,令牌通算法
后端,控制并发数,semaphore,控制访问速率,控制单位时间内窗口的请求数
多任务,多页面的情况下,线程池怎么去new(个数)?以及参数的含义?
一个系统整体性能的优化,各个层面?
db,应用层,页面,架构
乐观锁?
数据库层面就是加版本号,没变化则更新,有变化不更新
分布式锁了解吗?怎么尽可能规避?现在数据库的设计,单表查询。
阿里巴巴二面:
咱们探讨一下你最熟悉的模块?
你遇到过什么坑?
两个服务之间通信怎么解耦?不用中间件怎么去通信呢?(好像是多种方式)
线上遇到过什么坑?(oom怎么去解决?下载日志的那个命令叫什么?)
jmap -dump
你有什么想问的?
腾讯一面:
缓存怎么实现高并发的?
数据库支持2000/s,缓存在内存中,天然支持高并发,4w/s,都没有问题
session共享怎么实现的?
锁的隔离机制,详细的说下?(脏读,幻读是什么?)
慢查询怎么去解决?执行计划怎么去排查的?explain怎么去看慢查询的?
一个链表怎么判断有没有环?(有点懵)
hashMap为什么会形成环?