1、java并发基础:volitate关键字原理,AQS原理,线程池关键参数&原理,concurrenthashmap原理;
2、java虚拟机:java栈和堆内存分布,垃圾回收原理,常见的垃圾回收算法,常见的stackoverflowexception,outofmemoryexception是怎么回事;
3、消息中间件:消息中间件解耦&消峰特性的了解,消息中间件的原理,事务消息二阶段提交的原理;
4、远程服务框架:dubbo的通信过程,服务发现过程,序列化反序列过程原理理解;
5、分布式协调算法:zk的paxos协议原理,zab原理,metaq的raft协议原理;
6、数据库mysql:innodb的索引原理、事务原理、锁的原理和实现、事务隔离级别mvcc原理,innodb和myisam的区别;
7、nosql系列:redis的核心api需要熟悉,大概的原理,如何解决缓存被击穿的问题,如何解决缓存热key?
8、分布式锁的实现原理和有多少种实现方式?
目前主流的分布式锁的实现方式有三种:
①借助数据库来实现,新建一张锁表;
操作前向表添加一条锁记录(锁id建立唯一索引),成功添加者获得锁权限,处理完后删除锁记录来释放锁。
②基于缓存实现,如memcache 和 redis;
memcache的add操作具有原子性,可以保证同一个key add操作只有一个成功,来获取锁权限,利用缓存的失效时间来解决死锁问题。相对于第一种方案,这种方案性能更好,而且操作更方便。
③通过zookeeper实现;
客户端会在zookeeper生成一个临时的目录节点,存储在一个序列中,每次节点序号最小的节点对应的客户端获得锁,处理完成后删除最小节点,而且可重复获取锁(通过判断序号是否和最小的节点相同)。这种方式可以实现阻塞分布式锁,和锁的重复获取问题。
9、分布式限流如何实现,原理是什么?
10、运维命令:如何排查cpu100%,如果机器内存出了问题,应该要怎么排查?
11、分库分表的实现原理是什么,你所在业务一般是怎么分库分表的?对应逻辑是什么?
12、核心一些中间件的高可用是如何保证的?体系化看下;
全部评论
(1) 回帖