得物Java一面面经
自我介绍后开始聊项目,用到了分布式,被问了很多分布式的问题
1.什么是BASE事务
2.Seata框架事务
3.CP和AP的区别
4.分布式锁的实现。回答了Redis的setnx和mysql的行锁,然后问了还有其他方式吗,zk了解但不熟。细问了setnx的底层实现,各自的优缺点,什么情况下会失效,失效了怎么办。还被问了乐观锁能不能实现分布式锁。
5.分布式ID的实现方式,存在什么问题,怎么解决
6.介绍一下锁,从AQS到CLH,再到ReentrantLock和synchronized
7.Redis为什么性能这么好。什么时候性能会不好,bigkey,怎么排查,怎么删除
8.Redis的底层数据结构,聊到跳表的时候,问了mysql为什么用B+树而不用跳表
9.spring循环依赖,为什么需要三级缓存,两级缓存不行吗
8.tcp粘包和拆包
(还有些细的忘记了)
#得物面经#