首先,面试官进行对业务进行介绍,然后,候选人进行自我介绍。
面试官根据候选人经历进行提问。
候选人针对想了解的事情进行提问。
接下来主要是对面试官的问题进行记录:
- 在容量管理优化查询逻辑里面,集群及单机信息是维护在redis中,然后定时去进行刷新的,如果想实时刷新,应该怎么做呢?
运维团队将扩缩容事件投递在kafka中,容量平台起一个线程去订阅变更事件,当有事件时,更新公共缓存中的数据。
- 当系统频繁的进行扩容和缩容时,怎么保证数据更新的顺序是正确的?
kafka单broker的消息是可以保证顺序性的,但是kafka集群的消息实际是无序的。
可以根据时间戳来保证顺序性,即记录最新的消息,
- 如果时间戳不可靠呢?应该怎么做?
一致性对账??
- ABTest中,实验信息是放在本地缓存中的,如果每次实验变更,想第一时间感知到,应该怎么做?
发布-订阅模式,即当实验发生变更时,就发出一个变更事件,然后,每台机器感知到这个变更事件后,清空本地缓存,触发reload操作。
可以利用kafka、redis、zk等实现
- ABTest当本地缓存没有查询到,此时公共缓存中数据也过期了,触发缓存击穿,此时应该怎么解决?
为了避免大量请求打到DB,可以对查询请求进行加锁,保证相同的实验只有一个线程去查,然后更新到缓存中,其他的请求,走缓存查询结果。
- 介绍你做的一个项目,从项目背景,到最终上线,遇到的问题、怎么解决的,带来的成长。
- 介绍一下线程池、classLoader
- 反问:面试评价、成长与培训、未来发展。