金山二面服务端

c++技术栈 ,面试官应该是go
自我介绍 10min 

1介绍实习项目,看你实习项目提到了微服务框架,简单介绍。
    提到了protobuf,对比protobuf和json,怎么做压缩,哪些可以压缩,int可以压缩吗?浮点数可以压缩吗?

2 看你简历写了dorker 怎么用的 用来干嘛 dorkfile怎么编写 常用指令 你觉得dorkerfile如果写的很多在容器运行时有什么坏处 了解dorker镜像底层的制作和原理吗 

3 介绍一下进程 线程 协程 特点 原理 应用场景 。

4介绍分布式文件系统他的优点,解决什么问题,怎么保证可靠性的。
   针对存储效率和备份相关扯到了通信专业的信息论 问我学过没有 用较少的信息去恢复更多的信息流,用到了什么交叉码。说没学过,但是408里面的存储阵列和这个很像。
   场景题:1G文件上传服务器,怎么保证高效和可靠性,设计一个系统。然后针对每个设计点提问。

5 开始提kafka 
   你提到了kafka的生产者写入leader消息有多种确认方式,为什么kafka可以这么设计,或者说为什么这种消息队列可以这么设计,因为消息队列有很多种,听不懂问题。面试官又说比如一些转账业务,需要重传之类的就不好用kafka实现,他想让我回答kafka的应用场景,我说没有在不同的业务对比过,不太了解。

6. nginx相关 
    场景题
    nginx主要做负载均衡,如果让你实现一个nginx负载均衡器,怎么做,实现了两种,一种是基于随机数,一种是基于数组轮询的。 追问如果考虑长连接短链接呢,没答上来      

7 mysql 
   场景:
   mysql假设我现在是主从复制,那我针对不同的场景怎么去平衡效率和可靠性,如果你不了解,你自己去实现你怎么实现。
   分表问题:介绍纵向和横向的拆表方法 

8介绍研究生的研究项目,怎么做的,涉及哪些技术,baseline

9. 介绍简历里的游戏项目,针对项目进行提问,怎么优化的。

10.  看到时间了,然后反问,问了转语言的问题。

#金山办公# #金山办公面试#
全部评论
擦,为什么你没手撕,我有,还是两道,前面问完就剩10分钟让我写题,写太慢了,只讲思路
点赞 回复 分享
发布于 2024-10-24 18:22 广西
请问后面还有hr面吗
点赞 回复 分享
发布于 2024-10-24 19:56 陕西
金山允许转语言嘛
点赞 回复 分享
发布于 2024-10-24 21:52 天津
金山一共是2次技术面吗?
点赞 回复 分享
发布于 2024-10-25 10:37 福建
佬有后续吗,我也刚二面完
点赞 回复 分享
发布于 2024-10-28 11:01 湖北
佬,你的二面时长大概多久呀
点赞 回复 分享
发布于 2024-10-30 20:06 湖北
更新一下,问了内推的人,二面过了,等hr面
点赞 回复 分享
发布于 2024-11-01 21:24 湖北
佬请问hr面没
点赞 回复 分享
发布于 2024-11-19 17:50 陕西

相关推荐

2024-12-27 23:30
已编辑
蚌埠坦克学院 C++
#金山# #金山办公面试# #金山校招# #牛客创作赏金赛# ===============时间线====================12-03 一面12-05 二面12-13 HR面12-18 OC 12-27 收到签约邮件===============时间线====================12月12日更新,约HR面# 无自我介绍# 熟悉的C++版本C++11以后的基本都了解一些, 没有特别针对某个版本.# 智能指针1. `shared_ptr`: 支持拷贝、移动,可以作为返回值类型,避免大对象的拷贝. 引用计数是线程安全的2. `unique_ptr`:支持移动,可以通过转移所有权的方式,将对象的所有权转移给另一个独占指针3. `weak_ptr`: 支持拷贝,可以作为返回值类型,但是不能转移所有权,只能通过weak_ptr转成shared_ptr# gdb gcc有用过吗不怎么用gdb gcc有了解## gcc如何预处理忘了,回答gcc有参数控制```bashgcc -E main.c -o main.i```## 如何获取不进行链接的代码忘了,回答gcc有参数控制```bashgcc -c main.c -o main.o```# 线程安全的单例模式1. 通过C++11`std::call_once`实现2. 对指针判空执行两次,因为第一次判断为空后初始化前,可能其他线程已经初始化了,所以要两次判空问有没有其他的,回答原子变量应该也行,不是很了解。# 了解压缩算法吗不知道为啥问这个问题,面试官接着问是否了解哈夫曼,然后让讲一下自己了解的压缩算法。回答了科研做的图像压缩。# 项目## 项目结构略## 负载均衡怎么做的通过`roundRobin`方式实现,返回一个连接数量少的服务器;接着问道有考虑延迟吗,回答没有,因为是在单个机器测试的。## 单例模板基类是什么通过模板类是实现一个单例基类,子类通过CRTP的方式实现单例。## Qt键盘鼠标事件1. 键盘事件:`keyPressEvent` `keyReleaseEvent`2. 鼠标事件:`mousePressEvent` `mouseReleaseEvent` `mouseMoveEvent`# linux相关## docker如何建立目录映射回答,在创建容器时通过`-v`指定宿主目录和容器目录的映射关系。## top如何根据内存占用排序回答不知道,自己使用的基于top封装的btop,可以通过命令控制```bashtop -o %MEM```## 如何查找进程的句柄,回答不太了解。可以使用`ps`命令查询进程状态。查询大模型得到:进程句柄:操作系统为每个进程分配的一个唯一标识符。它主要用于操作系统内核和其他系统组件之间进行进程管理和通信。以下是关于进程句柄的一些关键点:```bashls -l /proc//fd```## 查看进程端口占用```bashnetstat -anp | grep ```## 查看进程打开的文件句柄回答不知道,查询大模型得到:```bashlsof -p ```# git回答稀碎,只会使用`push`, `pull`## git rebase`git rebase`可以将一个分支的更改应用到另一个分支上,可以用来1. 更新分支:    - 将当前分支的更改应用到最新的主分支(如 main 或 master)上,以保持代码的最新状态。    - 例如,如果你在一个功能分支上工作,而主分支上有新的提交,你可以使用 rebase 将功能分支的更改应用到最新的主分支上。2. 线性化提交历史:    - rebase 可以使提交历史更加线性,避免合并提交(merge commit)的出现,从而使提交历史更清晰。    - 例如,如果你从 main 分支派生了一个功能分支,并且 main 分支上有新的提交,rebase 可以将你的功能分支的提交重新应用到 main 分支的最新提交之上。3. 解决冲突:    - 在 rebase 过程中,如果遇到冲突,Git 会暂停并提示你解决冲突。解决冲突后,你可以继续 rebase 过程。    - 例如,如果你的功能分支和 main 分支在同一个文件上进行了修改,rebase 会提示你解决这些冲突。## git 如何创建分支回答使用`checkout`具体是:```bashgit checkout -b ```
查看20道真题和解析 牛客创作赏金赛
点赞 评论 收藏
分享
2024-12-09 17:26
已编辑
华中科技大学 Java
小米 风控开发 月base、公积金等都一样,都是1-3月的年终,餐补695
点赞 评论 收藏
分享
评论
9
43
分享
牛客网
牛客企业服务