一面
- 自我介绍
名字,擅长的技能,上一家公司主要负责什么产品。讲出自己的亮度(如:工作之余通过各个渠道进行学习,并。。。) - 选择一个最擅长的项目介绍
-
讲一下系统的TPS、QPS
-
画一下架构图
-
你在里面负责的是那一个模块
-
表是如何设计的
-
讲一下具体的业务流程
-
提出新的需求,让你现场设计
-
有什么难点
- Mysql 事务原理
1.先写 redo log 记录执行事务的 sql,
2.再把该版本的数据记录 undo log
3.执行事务,先找从内存中的页找需要执行事务的行,如果有数据则更新。否则从磁盘 load 到内存,再更新到内存页中。异步刷新脏页到磁盘
4.记录 bing log
二面:
-
自我介绍
-
登录服务每分钟 60W 用户登录,如果在 5 分钟内已经登录过,则返回”5分钟内已登录过“ 的提示,使用 32G 8核 1T 配置的机器,如何设计
1.第一次登录时将 用户的 id(唯一标识)存入Redis,设置5分钟过期时间
2.第二次登录时检查 Redis 中是否有该用户的 id -
5分钟内最坏占用多大内存?
一个用户的id,假设占 8个字节,4个字节的超时时间,那么一分钟需要占用
(8+4)600,000/(10001000)=7.2 m(兆),5分钟也就是:7.2 5 = 36m,
(ps:这里我考虑了 第五分钟将会有用户的key失效,因此回答了 7.24 = 28.8,感觉太蠢了)
-
判断一条 sql 是否使用了索引
使用 explain 查看 sql 的执行计划,判断 type 是否为 all,如果是 all 则表示走的全表 -
有哪些原因导致 sql 无法使用索引
- 索引列使用了函数
- 索引列含有计算表达式
- 未遵从最左前缀原则
- 使用全模糊查询 (%%)
- 范围查询后面无法使用索引
-
如何设计高可用架构
浏览器 -> CDN -> Nginx ->Tomcat -> 应用网关 -> 服务层 -> 监控
熔断、限流、降级、黑名单等手段 -
一枚硬币,A、B 2个人互扔,A先扔,B后扔,谁先扔到正面边结束,请问 A 先扔正面的概率是多少?
这时很傻的问了面试官一个问题,第一次扔的概率是不是 1/2 ?其实心里想问考不考虑硬币直立的情况......
当时想的先计算是B先扔出正面的概率:
- 1/2
- 1/2*1/2
- 1/21/21/2
..
n. 1/2^n
然后用总的概率 1 减去 B扔正面的概率,那么结果为:
1 - 1/2 -1/4……-1/2^n
最后还是没能写出来
解答:https://www.cnblogs.com/avril/archive/2013/06/28/3161669.html
总结:
第一面:介绍的项目比较简单,导致面试官认为项目经验比较浅,下次应该把比较难的拿出来遛一遛,也许面试官还是会觉得没难度......
第二面:基础要扎实,思路要清晰,有些问题只能是靠个人基础和积累的
乐信个人感觉还是挺靠谱的,面试官非常愿意沟通,没有其他歧视,面试完了只要主动问,会给到合适的建议,希望能帮到其他人
网友评论