✅工作3年,分布式项目,实时数据分析功能

面试者背景

普本,3年经验,IOT项目,微服务+大数据,SSM,redis,kafka,go,flink,实时分析,数据过滤,自定义规则,责任链模式

面试过程

:::warning 责任链模式的好处是什么?都哪些场景可以用责任链?

开通的分布式一致性怎么保障的?最大努力通知。如果超时的情况如何兼容?

重试是如何实现的?sleep?这个过程应用重启了怎么办?

除了Sleep还有其他方案吗?回滚操作调失败了怎么办?下游系统失败的原因可能是什么?失败人工介入?

最大努力通知为啥不用MQ?遇到什么问题会考虑用MQ?作用?异步、削峰、解耦。

MQ是如何实现的削峰填谷?消息投递数量会不会超过消费者的消费能力,pull,push?

Pull对MQ造成压力怎么办?拉的很慢消息堆积了怎么办?堆积之后如何解决?增加消费者、

Kafka的重平衡问题介绍下?重平衡的过程是怎么样?重平衡过程的问题有哪些?STW,重复消费。

如何避免重复消费对业务造成影响?

Kafka的消费者可能有哪些状态?kafka的高水位是什么?LEO

一句话总结HW的作用?

性能优化做过吗?介绍一下,arthas ,优化流程,CMS优化,

Mysql隔离级别默认是哪个?为啥是RR?RR解决了幻读吗?完全解决了吗?

RR的缺点是什么?RR相比RC多了什么?为啥很多大公司要把RR改成RC?

Mysql的行级锁到底锁的是什么东西?

Redis常用数据结构有哪些?hash、string、set、zset、list、geo、

Reids渐进式rehash过程是怎么样的?为啥要这么干?每次渐进rehash的时候怎么选择rehash哪些数据呢?

为什么redis有一批key过期,为啥其他的key读写效率降低?单线程

如何避免这种问题?被动删除、随机过期时间,

Redis的集群模式介绍下,主从、哨兵、分片。怎么避免脑裂的问题?能彻底避免吗?

:::

题目解析

:::color4 责任链模式的好处是什么?都哪些场景可以用责任链?

:::

责任链:https://www.yuque.com/hollis666/xkm7k3/yhmvq8

:::color4 开通的分布式一致性怎么保障的?最大努力通知。如果超时的情况如何兼容?

重试是如何实现的?sleep?这个过程应用重启了怎么办?

除了Sleep还有其他方案吗?回滚操作调失败了怎么办?下游系统失败的原因可能是什么?失败人工介入?

最大努力通知为啥不用MQ?遇到什么问题会考虑用MQ?作用?异步、削峰、解耦。

:::

这里面候选人提到自己用了最大努力通知,但是实现方式竟然是自己在代码中sleep,然后自己重试,这个方案肯定是不过关的。因为sleep这种一旦应用重启之后,数据就都丢失了,任务就没人继续调度重试了。

所以好一点的方案肯定是用MQ,依赖他的可靠性来实现。

✅什么是最大努力通知?

✅如何基于本地消息表实现分布式事务?

✅为什么要使用消息队列?

:::color4 MQ是如何实现的削峰填谷?消息投递数量会不会超过消费者的消费能力,pull,push?

Pull对MQ造成压力怎么办?拉的很慢消息堆积了怎么办?堆积之后如何解决?增加消费者、

:::

✅消息队列使用拉模式好还是推模式好?为什么?

✅RocketMQ消息堆积了怎么解决?

:::color4 Kafka的重平衡问题介绍下?重平衡的过程是怎么样?重平衡过程的问题有哪些?STW,重复消费。

:::

✅什么是Kafka的重平衡机制?

:::color4 如何避免重复消费对业务造成影响?

:::

✅如何解决接口幂等的问题?

:::color4 Kafka的消费者可能有哪些状态?kafka的高水位是什么?LEO

一句话总结HW的作用?

:::

✅Kafka 高水位了解过吗?为什么 Kafka 需要 Leader Epoch?

:::color4 性能优化做过吗?介绍一下,arthas ,优化流程,CMS优化,

:::

:::color4 Mysql隔离级别默认是哪个?为啥是RR?RR解决了幻读吗?完全解决了吗?

:::

✅为什么MySQL默认使用RR隔离级别?

:::color4 RR的缺点是什么?RR相比RC多了什么?为啥很多大公司要把RR改成RC?

:::

✅为什么默认RR,大厂要改成RC?

:::color4 Mysql的行级锁到底锁的是什么东西?

:::

✅MySQL的行级锁锁的到底是什么?

:::color4 Redis常用数据结构有哪些?hash、string、set、zset、list、geo、

:::

✅Redis 支持哪几种数据类型?

:::color4 Reids渐进式rehash过程是怎么样的?为啥要这么干?每次渐进rehash的时候怎么选择rehash哪些数据呢?

:::

✅什么是Redis的渐进式rehash

:::color4 为什么redis有一批key过期,为啥其他的key读写效率降低?单线程

如何避免这种问题?被动删除、随机过期时间,

:::

✅Redis中有一批key瞬间过期,为什么其它key的读写效率会降低?

:::color4 Redis的集群模式介绍下,主从、哨兵、分片。怎么避免脑裂的问题?能彻底避免吗?

:::

✅介绍下Redis集群的脑裂问题?

原文: https://www.yuque.com/hollis666/xkm7k3/fcp5g7f42mofc9fm