深信服秋招C++二面复盘

背景:深信服MSS海外组——后端开发实习

主要对我简历的实习经历——ip2region微服务化改造和我的专业技能进行提问。

  1. 没有自我介绍环节
  • 0.0面试官很早就来了,估计已经看过一遍我的简历了。
  1. 您这边是有我们公司的实习经验诶,想问下你在我们公司实习这段时间的主要收获吧。

  2. 想问下微服务这块主要是在实习的时候学习的是吧?那说一下网关模式吧。

  • 不清楚--。。
  1. 那讲一下为什么要做微服务化改造。

  2. 有没有了解过微服务主要解决什么问题?

  3. 你们部门已经开始微服务化了吗。

  • 还没。
  1. 分布式架构有了解哪些?
  • 不了解诶。。
  1. 在做这个需求的时候,有没有看相关资料?
  • 有的,看了一下consul相关特性和分布式一致性原理。
  1. consul需要zookeeper的配置嘛?
  • 不需要的,consul本身就集成了服务发现服务注册服务监控等功能。
    (到这里好像不小心按了一下静音建,导致我麦没声了,插拔了一下耳机,录像里面面试官的问题也没声了--。。。后面的问题考记忆写了。)
  1. 说一下consul的选主过程。

  2. 了解过其他的注册中心嘛?

  3. 有了解过配置中心嘛?

  • 没。。(当时部门还没做配置中心,说是后面再做,所以我也没看这部分)
  1. 你的ip2region不是要查文件嘛?那查询性能是怎样的?

  2. 这个数据包用的是什么数据结构存储?

  3. 说一下线段树这个数据结构。

  4. 看了看你做过的项目,高并发echo服务器,你有测试过嘛?怎么测试的?

  • 用的python
  1. linux怎样查看程序执行的时间
  • 在执行的时候
  1. 有了解过什么服务器嘛?
  • 了解过Nginx
  1. 讲一讲Nginx的架构。
  • 多进程,linux下IO多路复用epoll模型,分master和worker进程。
  • (master和worker的职责讲错了--,半年前看的资料,面试官之后给我指正了。)
  1. 说一下高性能平台吧,这是学校实验室的项目还是?
  • 我自己的个人项目
  1. web框架用的什么?
  • 我自己撸的,用到什么就实现什么,功能不太全--
  1. 这个项目用什么语言写的?
  • C++(面试官:怪不得,C++框架挺少的)
  1. 能具体说一下ip2region微服务化这个需求你是怎么做需求预研的,怎么定的方案?

  2. 为什么用mmap读文件?

  3. 你用mmap读文件,内存不会占用很高嘛?

  • 测试了一下性能还行,我leader就通过了这个方案。
  1. mmap配置能说一下嘛,有配置到mmap嘛?
  • 没有诶--。。。
    (面试官说没了解过mmap,没配置mmap,可能性能没直接添加索引读数据库好。)
  1. 讲一下常见的HTTP头。
  • 最基础的几个,content-type、content-length、cookie、host。
  1. 假如我实际消息体长度和我消息头声明的长度不一致会发生什么情况?
  • 只会按头部声明的长度读消息体大小,因为http协议是基于tcp协议的,tcp协议是流形式的,不能确定数据在何处结束。
  1. 讲一下头部host是干什么用的。

  2. 有没有了解过虚拟主机?

  • 没有。。
  1. 讲一下mysql的索引。
  • 我说一下innodb的索引吧。先说了二叉树、B树、B+树的数据结构,再说了一下聚簇索引。(想问面试官还要听我说索引类型嘛,面试官说不用了可以了。)
  1. 如果不考虑索引,考虑mysql的架构,mysql是怎样提升查询效率的(好像是问快速找到索引)。
  • mysql缓存中有自适应哈希索引。
  1. 说一下arp协议。

  2. arp得到mac后,网络设备是怎样学习的。

  3. 你知道arp攻击嘛?说一下。

  • 发送大量arp请求填满网络设备缓冲区,后面再发送伪造相同ip的arp包,设备就会认这个arp包了。
  1. 那你讲一下二层网络设备怎样仿造地址窃听数据包。
  • 伪造相同mac地址。

面试官:好的我的问题问完了(不到30min)

反问

  1. 对我表现的评价?如果这个不能说可不可以针对我的表现提一些建议?
  • 说表现还不错,面试官夸我还是会去自己学习技术背后的原理的,说我是不是实习期间没时间学习导致他的问题我没去了解0.0,说要提高工作效率抽时间学习,持之以恒。多去看一些前沿主流的技术,别去整那些老掉牙的fastcgi这种没人用的技术(我那时候很想试试用C++整web服务qaq,只了解cgi)。
  1. 你觉得学一项技术需要去怎么学习,去看源码还是?
  • 别看源码越学越傻,可以去极客时间看大佬的精品课程,也不贵。
  1. 你觉得语言他重要嘛(其实我是想问对转语言的看法)

  2. 我觉得学生学习时间很富裕,工作了反而没什么时间学习,想问一下就你的经验而言,工作和学习怎么平衡?或者说怎样安排学习时间。可以分享一下嘛。

  • 河里安排时间,提高工作效率。每天抽1h看资料,持之以恒,一周就能看完一个part。

最后的话

二面面试官还挺nice的,有不会的点也很愿意和我分享。
听说牛客许愿很灵,希望我能够顺利通过面试吧。许愿三面。

#23届秋招笔面经##深信服校招##深信服面经##深信服#
全部评论
这就是大佬嘛 太强了
点赞 回复
分享
发布于 2022-09-22 19:18 湖北

相关推荐

头像
不愿透露姓名的神秘牛友
04-27 10:33
中望软件 C++开发 30*14 硕士211
点赞 评论 收藏
转发
先说下,面试官挺好的哈哈,调侃下,忘记记录了😂....25分钟,15分钟问C++和项目,10分钟闲聊....感觉是不是凉了,,,项目的很多东西没问,主要自己没引导好,而且八股没开始背,面试官问的几个问题答的都不好(以下打乱顺序)[1],new 和 malloc 的区别[2],Windows下和Linux下,C++的区别,或者编译的区别1,编译器差异:1)Windows:主要有Visual C++编译器(MSVC),可以使用Visual Studio集成开发环境进行开发。也支持使用GNU编译器套件(如MinGW)或Clang进行编译2)Linux:常用的是GNU编译器套件(GCC)和Clang。通常使用命令行进行编译,也可以使用各种集成开发环境(如Eclipse、Code::Blocks)2,系统调用差异:1)Windows:通常使用Windows API进行系统调用,例如文件操作、进程管理等。2)Linux:通常使用POSIX API进行系统调用,与UNIX系统兼容,例如fork()、exec()等。3,开发环境和工具链:1)Windows:常用的集成开发环境有Visual Studio,也可以使用MinGW、Cygwin等工具链。2)Linux:开发者可以选择使用命令行工具链、各种文本编辑器和集成开发环境。4,标准库和系统库:[3],项目压测,每秒传输数据量 148万 bytes,为什么那么低1,实施负载均衡:将数据流量均匀地分配到多个服务器上,避免单点故障,并提高数据传输速度和可靠性。2,优化数据结构:使用数据库索引、缓存,加快数据查询速度[4],压测数据,环境,具体的过程是[5],常规算法都懂吗,说一下[6],实习最早什么时候可以到岗,学校/家离公司远吗[7],了解中望吗,CAD和CAx的区别,为什么想来中望[8],大一大二学了什么课程[9],为什么要投中望,对卷的定义是[10],学校课程怎么办[11],入伍经历[12],公司氛围[13],反问#中望##一面##面经##实习##C++##日常实习#
点赞 评论 收藏
转发
2 10 评论
分享
牛客网
牛客企业服务