0


后端开发面经总结

阿里巴巴

2023/4/11 阿里后端一面

Q:开始问了我成品油源平衡系统的开发相关问题,提的问题是常规套路:

  • 介绍一下项目
  • 有哪些常规的定时任务方案选型
  • 原本项目是单机的,如果部署到多机下,如何解决多个定时任务的冲突

A:在介绍项目的时候我忽略了项目背景,项目模块以及项目技术栈的介绍,直接跳到了个人负责的功能介绍上,下次必须注意。常规的定时任务我只回答上了Timer和Spring Task,忽视了分布式定时任务(如Elastic-Job以及XXL-JOB,这些分布式定时任务总体来说就是通过集群实现调度器,来保障高可用)

接上面聊到的集群实现调度器,事实上这也是第二个问题的关键点,即集群实现调度器时,如何保障一致性?

我的回答是,一次仅生效一台调度器,其他调度器则是采用延迟自旋以及读取Redis字段的方式判断主调度器的存活情况,当存活失效时,通过单例生成方式来重新生成定时任务。(扩展:可考虑故障恢复策略的进一步设计)

Q:然后又问了我AQS以及ReentrantLock,其中有关于Condition的知识我没回答上来
A:Condition将各个线程分配成不同的group,使用Condition的signalAll方法只会唤醒注册在当前Condition上的线程

标签: java redis 开发语言

本文转载自: https://blog.csdn.net/weixin_43008154/article/details/130088388
版权归原作者 阿银的万事屋 所有, 如有侵权,请联系我们删除。

“后端开发面经总结”的评论:

还没有评论