✅26届,双一流硕士,2段大厂实习

✅26届,双一流硕士,2段大厂实习

面试者背景

:::warning 26****届,双一流硕士,2段大厂实习(CICD系统、资金结算系统)

资金结算实习四个月,干的最难的工作是什么?数据库稳定性治理,分库分表、解决数据倾斜问题,

分表前多少数据?1000万、为啥要分,300**/****月,参与实现了其中哪部分? **

分表键和分表算法介绍下?费用单,商户id,分了多少张表?128表,16库?怎么定出来的。

费用单的历史数据还有用吗?为啥不考虑归档或者搜索引擎。

分表后主键是怎么生成的?号段模式**、你这个sequence数据的存储在哪个库哪张表?某个单库中。**

数据倾斜问题,大商户。有多少量?5**/**日,现在他有多少数据?

怎么解决的数据倾斜问题?二次分表。客商白名单、单独加时间二次分表。

客商的数据查询怎么办?为啥不干脆直接按照时间分?

分库分表之后数据迁移怎么做的?读旧双写(双写是怎么实现的双写?先写哪个库?失败了咋办?)、存量数据迁移(怎么定义存量数据?根据时间、开增量双写的时间?)

你做过的项目中,做过哪些比较好的设计模式吗?多渠道资金打款**>策略模式+模板+**工厂,分别起到了什么作用?三种工厂模式有什么区别?

AOP+自定义注解实现了啥功能?日志处理。如何实现的AOP****可以切到这个注解上?你这个直接里有参数吗?日志要打什么?

如何统计一个bean的某个方法被调用多少次?如果方法执行过程失败了怎么办?

finally****的代码什么情况可能会不执行?守护线程了解么?JAVA中可以创建守护线程吗?

JAVA****中多个线程做同步,有哪些方案?加锁、JUCJUC中都有啥?原子类、并发控制工具、锁、并发容器、线程池。CoW是啥意思?你用过原子类么?使用场景是啥?

AQS中已经用了CAS**,为什么还需要CASvolatile怎么保证的可见性。CAS本身不是基于CPU缓存一致性协议(MESI)做的吗,为啥还需要保证一致性?**

Mysql 定义varchar(10)varchar(100),同时存6****个字符的时候,有区别么?存储无区别,排序有区别?排序上有啥区别?

如果是char(10)char(100)呢?MySQL的深分页如何解决?子查询就没有深分页的问题了吗?用esEs就没深分页了么?跳页咋办?

MySQL的主从同步是怎么做的?为什么需要relay log****中转一下?binlog是拉的还是推的?什么情况可能会主从延迟?

线上一个接口响应时间不符合预期,如何排查和解决?trace ,比如说是慢SQL可能是啥原因导致的。

自己不慢,下游接口慢怎么办?异步?

如果你trace发现你并不慢,但是上游就说你慢,怎么办?

:::

题目解析

:::color4 资金结算实习四个月,干的最难的工作是什么?数据库稳定性治理,分库分表、解决数据倾斜问题,

分表前多少数据?1000万、为啥要分,300**/****月,参与实现了其中哪部分? **

分表键和分表算法介绍下?费用单,商户id,分了多少张表?128表,16库?怎么定出来的。

费用单的历史数据还有用吗?为啥不考虑归档或者搜索引擎。

分表后主键是怎么生成的?号段模式**、你这个sequence数据的存储在哪个库哪张表?某个单库中。**

数据倾斜问题,大商户。有多少量?5**/**日,现在他有多少数据?

怎么解决的数据倾斜问题?二次分表。客商白名单、单独加时间二次分表。

客商的数据查询怎么办?为啥不干脆直接按照时间分?

分库分表之后数据迁移怎么做的?读旧双写(双写是怎么实现的双写?先写哪个库?失败了咋办?)、存量数据迁移(怎么定义存量数据?根据时间、开增量双写的时间?)

:::

✅分表后全局ID如何生成?

✅什么是分库?分表?分库分表?

✅分表算法都有哪些?

✅如果单表数据量大,只能考虑分库分表吗?

✅什么是数据倾斜,会带来哪些问题?如何解决?

✅分库分表中,如何预估需要分多少个库?多少张表?

✅如何做平滑的数据迁移?

:::color4 你做过的项目中,做过哪些比较好的设计模式吗?多渠道资金打款**>策略模式+模板+**工厂,分别起到了什么作用?三种工厂模式有什么区别?

AOP+自定义注解实现了啥功能?日志处理。如何实现的AOP可以切到这个注解上?你这个直接里有参数吗?日志要打什么?

如何统计一个bean的某个方法被调用多少次?如果方法执行过程失败了怎么办?

:::

✅你在工作中是如何使用设计模式的?

✅使用自定义注解+切面减少冗余代码,提升代码的鲁棒性

✅如何统计一个Bean中的方法调用次数

:::color4 finally****的代码什么情况可能会不执行?守护线程了解么?JAVA中可以创建守护线程吗?

JAVA****中多个线程做同步,有哪些方案?加锁、JUCJUC中都有啥?原子类、并发控制工具、锁、并发容器、线程池。CoW是啥意思?你用过原子类么?使用场景是啥?

AQS中已经用了CAS,为什么还需要CAS?volatile怎么保证的可见性。CAS本身不是基于CPU缓存一致性协议(MESI)做的吗,为啥还需要保证一致性?

:::

✅finally中代码一定会执行吗?

✅什么是守护线程,和普通线程有什么区别?

✅介绍下JUC,都有哪些工具类?

✅什么是COW,如何保证的线程安全?

✅如何理解AQS?

✅有了MESI为啥还需要JMM?

✅有了CAS为啥还需要volatile?

:::color4 Mysql 定义varchar(10)varchar(100),同时存6****个字符的时候,有区别么?存储无区别,排序有区别?排序上有啥区别?

如果是char(10)和char(100)呢?MySQL的深分页如何解决?子查询就没有深分页的问题了吗?用es。Es就没深分页了么?跳页咋办?

:::

✅varchar(100)和varchar(10)有什么区别?

✅MySQL的深度分页如何优化

✅什么是ElasticSearch的深度分页问题?如何解决?

:::color4 MySQL的主从同步是怎么做的?为什么需要relay log中转一下?binlog是拉的还是推的?什么情况可能会主从延迟?

:::

✅MySQL主从复制的过程

:::color4 线上一个接口响应时间不符合预期,如何排查和解决?trace ,比如说是慢SQL可能是啥原因导致的。

自己不慢,下游接口慢怎么办?异步?

如果你trace发现你并不慢,但是上游就说你慢,怎么办?

:::

✅如果一个接口响应时间不符合预期,怎么排查跟解决?

✅一次RPC请求,客户端显示超时,但是服务端不超时,可能是什么原因?