26年2月联想弘扬科技 Java开发工程师 二面

1. 分布式系统中,如何通过“逻辑时钟+向量时钟”解决事件因果序问题?

思路

先讲分布式无法依赖物理时钟,再讲逻辑时钟解决happens-before,向量时钟解决多节点因果依赖与冲突检测。

回答示例

面试官您好,分布式系统里各个节点的时间不一样,不能用物理时间判断事件先后。

所以先使用逻辑时钟,每个节点自己维护一个自增的时间戳,事件发生就+1,用来表示事件的先后关系。

但逻辑时钟只能表示单节点顺序,多节点的因果依赖判断不准。

于是就有了向量时钟,每个节点维护一个数组,记录所有节点的版本号。

事件发生时自己的版本+1,通信时带着整个向量。

这样就能精准判断两个事件谁先谁后、有没有因果关系,还能检测数据冲突。

简单说:逻辑时钟解决顺序,向量时钟解决多节点因果与冲突。

2. Kafka生产者设置acks=1时,Leader写入成功但Follower未同步,宕机风险如何规避?

思路

acks=1只写Leader就返回,存在丢数据风险;规避从配置、副本、选举、重试多方面入手。

回答示例

面试官您好,acks=1表示Leader写入成功就返回,不等待Follower同步。

如果此时Leader宕机,Follower没同步到数据,被选为新Leader,数据就丢了。

要规避这个风险,首先核心业务建议把acks设为all,等待ISR集合同步完成。

然后配置min.insync.replicas=2,保证至少有一个副本同步成功。

同时关闭unclean.leader.election.enable,不让不同步的副本当选Leader。

最后开启生产者重试、保证消息幂等,就能最大限度避免数据丢失。

3. Redis Cluster槽位迁移期间,客户端收到ASK重定向与MOVED重定向的本质区别?

思路

MOVED是永久变更、更新本地路由;ASK是临时迁移、不更新路由、只临时访问。

回答示例

面试官您好,两者的本质区别非常明确。

MOVED重定向表示槽位已经永久分配给新节点了。

客户端收到后,会更新本地的槽位映射表,以后直接访问新节点。

ASK重定向表示槽位正在迁移中,是临时状态。

客户端不会更新本地路由,只是带上ASKING命令,临时访问一次目标节点

一句话总结:MOVED是永久搬家,ASK是临时借用。

4. 设计用户积分系统:如何用Redis SortedSet实现积分排行榜+实时更新?

思路

ZSet天然支持分数排序、O(logN)读写;实时更新用ZADD,查榜用ZREVRANGE,查个人排名用

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论

相关推荐

● 自我介绍● 项目中使用的MySQL是哪个版本,有没有使用过MySQL8● 如何实现分库分表,项目中的数据表数量是多少,如何优化(https://javaguide.cn/database/mysql/mysql-high-performance-optimization-specification-recommendations.html)● MySQL常见的索引有哪些(https://javaguide.cn/database/mysql/mysql-index.html)● 聚集索引,最左匹配原则● 使用的中间件有哪些● ES的使用场景,ES是什么,底层是基于内存还是硬盘(https://www.yuque.com/snailclimb/mf2z3k/simu3iyhd87kgp3e)存储机制是 “内存 + 硬盘” 结合:硬盘持久化数据,内存缓存索引加速检索,内存影响速度,硬盘决定容量。(By豆包)● Redis的使用场景,分布式锁的使用场景(https://javaguide.cn/distributed-system/distributed-lock.html)● STW是什么吗在 Java 中,STW 是 Stop-The-World 的缩写,中文译作 “全局停顿” 或 “停止所有线程”,是 JVM(Java 虚拟机)在执行某些关键操作时,暂停所有用户线程执行的一种机制。(By豆包)● 接口如何实现幂等(https://www.yuque.com/snailclimb/mf2z3k/mlnfrc6kk95kmli6)● 接口如何做限流(https://javaguide.cn/high-availability/limit-request.html)● SpringBoot切面是什么,切面底层原理是什么● 项目中的AOP切面日志如何实现
查看13道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务