记录一次阿里乌鸫科技java后端面试,只记录技术相关。面试的是资深研发工程师
一面
一面
- 项目经验
- redis数据分片机制
- 看的书籍,介绍印象深刻的
- 用list手写一个线程安全的队列
- 怎么解决分布式事务,用rocketmq是否存在消息丢失的场合,怎么做补偿
- 业务中数据模型,设计的时候怎么抽象表结构的
- 分布式锁对扣减库存的性能影响,并发量大用乐观锁将压力转移到mysql是否合理
- 日常怎么处理微服务之间的链路追踪,traceId和大数据日志采集的实现原理
- redis的缓存穿透、击穿、雪崩怎么处理,布隆过滤器
- redis单线程效率高的原因
- redis多路复用
- netty的reactor模型
- 限流策略,sentinel的了解
- 在工作中的不足,怎么弥补?
二面
二面
- 项目复杂度的体现和用到的设计模式,下游服务的认知,订单系统拆单逻辑。
- 分布式锁,查库存和扣减库存原子性
- 分布式事务,订单和库存的事务一致性
- 多个系统之间数据同步, 发布订阅,初始化数据,增量binglog同步。
- 增量数据除了binglog怎么同步?
- 通过version版本号,每次主动拉取更新数据查询version比自己大的数据,进行更新。
- Spring IOC,AOP
- AOP是在什么时候加载的,容器怎么加载bean
- Spring三级缓存怎么解决循环依赖
- mybatis拦截器动态代理底层怎么找到XML,怎么执行sql
- 网关层怎么做限流
- RMQ保证事务一致性
- redis集群
- 算法:有一棵树,每个节点可能有多个子节点,描述这种数据结构并且遍历
三面
三面
- mysql分库分表
- 秒杀的设计
- DDD领域设计
- mysql索引的优化、隔离级别、mvcc、redo和binglog写入时机,同步机制。
- JVM优化经历
- rocketmq的深入
- dubbo的流程,对称加密和非对称加密、spi、负载均衡算法
- ZK数据同步,崩溃恢复
- docker k8s常用打包命令
- docker和虚拟机的区别
- volatile和synchronize关键字
- ZK锁之间的节点同步