Time: ~30 mins
面试之前 hr 让我准备交易策略方向的内容,但实际上根本没问过。
自我介绍,之后就是问八股
1. MySQL 的索引 (经典老八股)
2. 量化的优点
3. C++ 项目讲一下
项目中 Socket用的什么?线程用的什么?
4. C++ 用过哪些开源的网络库?
5. 介绍一下 RabbitMQ (自己根本没有用过,消息队列只用过 Kafka,也没写在简历上,还好之前看过一些八股)
6. 网卡的混杂模式 (不太会也没看过,就凭借着自己的理解回答了)
7. TCP 之前的端口被占用,TCP 怎么还有链接
之后出了一道场景题:
交易场景下,1s下单不能超过100笔,系统调用超过100笔,做拦截该如何实现?我回答的是用 Rate Limiter 或者用一些 load balancing 之类的算法,举的例子就是 Rate Limiter 最简单的 Leaky Bucket 算法(因为 Rate Limiter 4 种算法自己就只记得这个最简单的)但听面试官的语气好像不是很满意。不知道是否有大佬可以帮忙解释一下这道题该如何回答?
用什么数据结构去检查?我回答的是用队列来记录系统的调用的时间戳并且用哈希表做映射 (自己印象中看过类似日志的检查,但不知道对不对)
下上下游控制用什么数据结构?(没太理解,自己回答的还是队列解耦上下游之间的关系)
之后就是反问环节 -> 面完立马感谢信(也不知道是什么原因,该答得都答上来了)