2020-3-17面试

对Spring的了解讲一下?IOC AOP DI

循环依赖? 三级缓存,Spring解决循环依赖是不是递归,会不会栈溢出?
什么是不完整的bean?创建完成后,没有设置属性的Bean。

Spring扩展点?BeanPostProcessor BeanFactoryPostProcessor BeanDefinitionRegistryPostProcessor
processor什么时候创建执行的?BeanFactoryPostProcessor BeanDefinitionRegistryPostProcessor 在BeanFactory创建完成之后创建并执行。BeanPostProcessor 在上面两个创建完成后 在Bean创建完成initializeBean时执行。


Spring事务怎么实现的?事务传播?动态代理,ThreadLocal
@Transactional new 出来的Service是否生效?不生效,不是代理对象。
方法内部调用方法事务是否生效?不生效this调用,直接调用目标对象,没有经过事务。
异步怎么保证事务?
RocketMQ延时队列?延时队列怎么实现的?要实现一个定时的延时队列怎么做?

先发送到延时Topic 18个等级,每个等级有一个定时任务。

猜测 自定义的实现延时,先做消息分类,减少定时任务扫描全部消息,多个定时任务,每个负责一个时间段内的消息。


MQ发送了一条消息,然后修改了又发送了一条怎么判定前一条消息的无效?

答 生产者提供检查接口,消费者回调生产者检查。
dobbo的长连接工作原理?怎么唤醒业务线程?异步转同步,调用时 生产者挂起业务线程,并生成了一个request,发送给消费者,request中有id,消费者执行完业务方法后 返回这个id去匹配生产者中id对应的线程。匹配到唤醒。
Netty性能为什么高?NIO?
一个请求 10个异步调用怎么汇总结果?
答 CountDownLacth
CountDownLacth怎么实现的?AQS 同步状态定义为线程数,countdown时 使用cas自旋 state-1
线程池阻塞队列中提交速度快,执行速度跟不上怎么解决?队列锁竞争很激烈怎么解决?
答 一个队列从拆分成多个队列
多个队列负载不均衡怎么解决?
答 双端队列 工作窃取
双端队列怎么实现的?


redis限流瓶颈怎么解决?cluster集群,对key做变换,使多个节点存储同一个数据,查询时做负载。限流100 ,10个节点 每个节点上限流 10个。
不用redis限流有什么方案?令牌桶(信号量),滑动窗口。
redis挂了怎么解决?本地缓存,每次请求从redis拉取数据更新到本地缓存做兜底。

内存溢出怎么排查?伴随着频繁GC,查看堆栈快照,在老年代大对象中是否有回收不掉的对象存在。
MySQL 可重复读 mvcc 快照读,快照到底是什么? select操作与锁无关,在当前表中,根据创建版本号,删除版本号做查询。
索引怎么建?优化
订单号建了索引 数据1000万为什么还会出现瓶颈?

发布了16 篇原创文章 · 获赞 4 · 访问量 2022

猜你喜欢

转载自blog.csdn.net/qq_36592473/article/details/104934348
今日推荐