面试时常一个小时,没有做算法题
问题清单(只展示核心问题,简单八股就不列出来了):
总结 面试官问的问题大多都是从业务出发,非常集中,主要问的场景就是问从 Mysql 到 Mysql 的如何进行数据传输,以及使用 Kafka 作为消息中间件的时候的一些生产和消费的问题。 好多问题没答上来不是面试官出题刁钻,存粹是我自己菜,最后也问了一下他们做业务的过程中的一些问题和进展,也算是有收获。
PS:面试官会引导面试者进行回答,非常 Nice
1
v2exgo 3 天前
有点刁钻,很多都不是常见的
|
2
v2exgo 3 天前
可能你这个面试的是基础中间件岗位
|
3
coderonlee 3 天前
这是一面?
|
![]() |
4
liangkang1436 OP @coderonlee 是的
|
![]() |
5
einvince 2 天前
复盘不把正确答案复盘下吗 😂
|
6
EMMMMMMMMM 2 天前
业务不是你自己菜, 也许他问的都是他的业务场景的问题, 你没遇到过没处理过,自然就答不上来了
|
![]() |
7
zizon 2 天前
好奇第四个问题的背景.
直接 binlog 有什么问题? |
8
v2exgo 2 天前
@zizon
![]() |
10
v2exgo 2 天前
@zizon 估计面试也是要问你具体的因素的,像你大表,不可能用 limit offset 这个超过一定数量的时候有性能问题,所以你要考虑用主键,那用主键就要考虑步长的问题,mysql 主键自增也是可能有空隙的,如果主键不是自增的,你又要怎么处理,反正屁事很多,具体的业务场景你没做过,肯定都要想办法上网去查方案
|
11
v2exgo 2 天前
假设 Mysql 里有一张 student 表,表里面有一个 name 字段,student 配置的是 utf-8 编码,但是 student 配置的是 GB2312 的编码,然后用 canal 去订阅,会有什么问题?
这个问题估计编码可能有问题,因为 binlog 本质上内容还是 SQL ,如果 SQL 存在编码问题,那么从库的数据肯定就对不上了 |
12
v2exgo 2 天前
@zizon 然后 binlog 不是有几种模式,有 statement 跟 row mixed 模式,一般做这种同步,最好使用 row 模式,肯定也会问到的,八股文的东西太多了,我以前也看过,刚才才想起来,还有 binlog 的 row 格式
|
13
v2exgo 2 天前
@v2exgo #11
2. Binlog 事件中的字符集信息缺失 原因: 在 ROW 格式的 Binlog 中,字段的字符集信息通过 Table Map Event 传递。 若 Canal 未正确读取字段的 gb2312 字符集元数据,可能直接使用表默认的 utf8 解码。 |
![]() |
14
liangkang1436 OP @einvince 很多问题答案不唯一,而且大部分问题只是一个引子而已,答出来了面试官会根据你的回答问第二个第三个问题。所以就懒得放答案了。
|
![]() |
15
liangkang1436 OP @v2exgo 其实老哥已经答得差不多了,实际方案就是,确定一个时间为历史数据和增量数据的分割点,然后开启可重复读得事务,保证读取历史数据的时候,不被后续的更改干扰,然后用多线程得方式去读取历史数据(记得记录消费进度),或者其他的方式比如 mysqldump 把历史数据拉下来,然后到目的端恢复,恢复得时候也可以并发写入,历史数据发送完之后,再开始指定时间点之后得 binlog 日志,大概就是这个思路
|
![]() |
17
coefuqin 2 天前
这些问题讲真用来面试,只能说面试的人水平确实不行,因为很多问题都是需要时间慢慢磨的。高明的面试只需要一个问题,不断的盘对于问题的认知和解决思路。解决问题的思路比具体问题更有价值。
|
![]() |
18
liangkang1436 OP @coefuqin 我这段时间面试,碰到的都是这些问题:笑哭:,现在用人单位要求高,也不缺简历,可能问问题就刁一些了。
|
19
v2exgo 2 天前
@coefuqin 没办法,很多时候 用人单位就是这样设计场景题的,首先是筛选外包那些菜的,另外就是筛选八股文不熟悉的,同步数据说到底就是那几个思路,先你得有一个快照,这个快照不能受到干扰吧,然后可重复读不是有 gap lock 么,这个你事务时间太长 gap-lock 是不是耽误别的数据进行一个写入呢?那是不是能采用小范围的读数据,把 gap-lock 的范围缩小,然后是不是能考虑用索引,这个时候是不是又要考虑 非唯一索引 跟唯一索引的 gap-lock 范围 以及位置,这些里面组合的情况很多的,你要根据实际情况 去做方案,做了方案还要做实施
|
21
qingyingwan 2 天前
@v2exgo 这不算核心问题,九成靠经验吧。真实业务场景极少遇到的不算核心,只能说刁钻。反正我大厂高并发后端深入技术干过,创业公司全能后端也做过,没遇到过一次。各种成熟的三方工具,比如想的方案厉害多了。深究细节的话,比如你去研究下 mysql 的架构和源码,即使只读懂一百行 C++,也可以直接问倒任何考八股文的面试官。再比如,内存屏障,原子操作,在各种 CPU 架构上如何实现,这种细节随便都可以问倒一批人,我马上查一下就知道了,但我知道这些,也并不比不了解的答主厉害,因为他也会搜索会问 ai 。
|
22
v2exgo 2 天前
@qingyingwan 我知道,这个时候,其实你也是要去表达的,你有哪些思路 有哪些地方可以考量的,很多面试官的意思就是看你工作中处理的经验多不多而已,真实的案例中,可能网上已经有成熟的方案跟工具了,而且很有可能你根本就没做过这块,但是不妨碍你表达你可能在这个方案中 你会思考哪些东西,可能哪些点需要你去做抉择
|
23
v2exgo 2 天前
@qingyingwan 是的,一个细节可以问死很多人,像原子变量 x86 可以用 lock 汇编命令,底层有 MESI 缓存一致性协议,这里面又有很多细节,以及队列的实现,具体到底层 有大量的细节,很容易问死人
|