金山世游-游戏服务器开发-一面(已过)
学院本双非硕有一段ai初创实习经历,找暑期太难了,没有约面的,只有小红书约面了,明天面。金山的offer先接了,然后骑驴找马了。下面是面经,发出来攒人品了。
1. 自我介绍,尤其是对你的项目内容,就是你的项目经历,或者是你自己比较擅长的领域,可以展开去聊一聊。
2. 对于你这个实习或者是项目里面,你觉得哪一个点或者是你印象比较深的,你可以直接展开聊一下。
说了 tab 补全那里的链路重构,面试官说我思路很清晰
3. Google Adsign 接入唯一ID,这个唯一 ID 是自我自己生成的吗?【实习】
4. 使用 Redis 加 Lua 分布式限流保障邮件发送治理的这个,工作内容可以展开这个聊一下吗?【实习】
5. Redis + lua 有什么优势?
6. 我们要实现一个微信抢红包这样的功能,你会去怎么实现这个,这个能力?
回答用 redis setnx+延迟队列+mq
7. 那你这种业务这个方案的话怎么去实现高并发呢?比如说同时有 100 个人抢这一个红包。
我:不太会,就回答了加锁,然后说 Redis 的 decr 和 incr只会扣减一,没法保证红包金额(这里一通乱答)
面试官:那有没有一种更优化的方案?因为我们按刚刚的方案来说,比如说一个抢红包的一个请求过来,或者是多个抢红包请求过来,那我们一定是要用锁的形式先抢占,所以我先相当于是我抢占了这个锁,我才能去执行抢红包这个逻辑,对不对?那执行抢红包这个逻辑,这会就涉及到一个问题,如果这个逻辑比较复杂,或者是它里面计算时间比较久,就是计算 IO 比较久的话,所有大家都会去等待,有没有方案让我提前去,或者是有没有方案是来减少我这个计算相关的一个时延?
我:不太会,回答了线程池(依旧乱答)
面试官说:线程池,它也是因为你线程池,无所谓,你创建新线程,还是你拿新的,还是用线程池里面已有的线程来去做执行,它都会要等待,对吧,比如说同时我有 100 个人请求都来了,那你可能就得有 100 个线程,对吧,大家都得去等待,谁拿到这个锁,谁再去执行抢红包这个操作。
我说:不太会,不了解 cpu 计算场景怎么优化,只知道 io 密集场景可以用虚拟线程
面试官说:比如说我刚刚提到了一个点,就是能不能把 CPU 计算前置。因为我们现在这个业务场景是什么?就比如说一个红包有 100 个 100 元,我要分 10 份。所以说他其实对于第几个人来他其实不在意,就是说现在有或者是有抢没抢?或者是这个现在当突然有多少人来抢?其实对于红包,发红包这个事情来说,或者抢红包这个概念来说,它其实是可以预先知道每个红包分成多少钱,是不是这个事情?
我:用 Redis 先做预热。
面试官:对,那你比如说这个方案的话,我们要怎么去做呢?有一些哪些实现的细节,或者哪些数据结构呢?
我:提前写死金额存在 Redis 里,但每份红包的金额写死不公平(此处省略一堆)
面试官:涉及到公平,那你觉得怎么不公平?写死的不公平的原因是什么?
======= 后面都是对这个场景设计的探讨,此处省略跳过========
8. 了解微服务吗
不了解,面试官就跳过了
9. 那我们聊一下本地事务加任务补偿怎么去?当时是怎么去实现的?【项目】
10. 发散聊一聊对于 vibe coding 相关的一些理解,或者是对于大语言模型,你最近有哪些参与度?或者是有哪些去研究的点吗?
我脑子一热回答了 openclaw
11. 你觉得它用 Openclaw 或者是龙虾这个东西和我们直接去使用大语言模型最直接的区别有哪些?
答了 Agent 和大模型的区别,补充了 skill、mcp、Function call
12. 那你自己又玩龙虾,主要是做了哪些?帮你辅助了哪些功能呢?
回答写定时任务每天帮我拉 github 的热榜和股票(抄群友 maple 的)
13. 那其实在于你实际工作过程中,这个龙虾其实也没有发挥更多的一个所谓的私人助理这个的作用啊?
我说想实现在飞书接入龙虾,然后实现 AI 办公
14. 你认为的在使用 AI 来进行办公的主要的一个业务场景有哪些呢?
我说开周会,可以用龙虾去发通知啥的
15. 公司用 golang 进行开发,除了会 Java 还会啥语言
我说学习了 go 的语法 和 gorm,但没学完 grpc
16. 那你现在的学习路径是怎么样?通过什么样的方式来去学习的?
我说看官方文档还有字节和七牛云的开源文档
17. 我看你这边游戏经历里面主要是玩 MOBA 类的,然后你还比较有感兴趣的就是他怎么支持百万人同时在线这个问题,那你自己是怎么去考虑的?
我说实习的时候调研过将单机设计成联机,用 supabase 的 real time机制
18. 对于传统的像英雄联盟也好,王者荣耀也好,它除了在局内对战,它其实还会有更多的一个游戏养成,还有一个社交的一个游戏场景。那它们两个同时支持百万在线,可能它们的一个实现模式会不太一样,这个里面有去有考虑过它们之间的不同吗?
我说没考虑过
19. 那考虑到同时在百万同时在线的,除了说你刚刚有一个 real time 来实时通信,那还有一个点就是在于它同样的一个单机肯定是不可能支持这么大的一个的用户量了,它一定涉及到一个集群。你对于分布式部署有过相关的一些经验吗?
我说没有,只知道 k8s
20. 你可以理解为 K8S 作为一个编排容器,它就是来去做动态缩扩容的,但是我们在考虑的是为什么要分布式部署,或者是它主要能应对哪些应用场景?这个事情有了解过吗?
我不会,就答了扛流量,通过负载均衡的轮询或者随机策略去访问实例之类的。
然后面试官给我讲解了分布式部署,比如垂直分布和纵向分布....(此处省略一百字)
反问阶段:
1. 表现
面试官说:表达很好,准备很充分,思路很清晰,不用太过担心
2. 业务
面试官说:组内不做鹅鸭杀,做的是小游戏品类,比如说像最近广告特别多的无尽东日,还有之前比较火的什么冒险大作战、寻道大千这一类的游戏,其实它的游戏载体是在微信或者是抖音这样的一个平台去进行一个游玩。
(因为我游戏经历里写了 moba 类游戏,面试官又给我讲了和 moba 类游戏的区别)
面试官说:对于我们这边的服务器开发的话,就是说从客户端的所有的链路,比如说 Websocket 的建立, Websocket 的一个连接管理,以及所有的客户端的请求的分发处理,以及对于不同的业务模块,比如说它的排行榜模块,它的商城模块,它的匹配模块,还有一些它的所有的养成模块都需要去我们进行一个开发的和介入。
面试官说:我们会以项目组的形式来进行开发,对于我们当前的组内的话,主要是人员是在 10 人左右,程序员是目前是在职有4位程序员, 3 位客户端,一位服务器开发。然后除了刚刚提到的我们要开发游戏项目内的业务功能外,同时还要去考虑到对于我们最终的服务的部署,服务的上线以及最终线上的一个问题的定位和快速的修复,就是我们现对于当前的程序员来说,他不仅仅是不会像早些年一样会区分你是一个开发,你还是一个测试,你还是一个所谓的运维。因为现在的话大部分运维就是给你直接提供云服务。给你提供云服务机器,然后对于服务内如何去搭建,如何部署,都是由我们项目内的开发人员来去完成的,所以说在我们这个游戏的或者是项目组内,如果要参与的话,其实你可以认为是从基础到上线运维到问题修复这块,其实是会有一个全面甚至是一个全方位的一个参与度的。
面完两分钟后,hr 说下午谈 offer(史上最快.....)
#发面经攒人品#
1. 自我介绍,尤其是对你的项目内容,就是你的项目经历,或者是你自己比较擅长的领域,可以展开去聊一聊。
2. 对于你这个实习或者是项目里面,你觉得哪一个点或者是你印象比较深的,你可以直接展开聊一下。
说了 tab 补全那里的链路重构,面试官说我思路很清晰
3. Google Adsign 接入唯一ID,这个唯一 ID 是自我自己生成的吗?【实习】
4. 使用 Redis 加 Lua 分布式限流保障邮件发送治理的这个,工作内容可以展开这个聊一下吗?【实习】
5. Redis + lua 有什么优势?
6. 我们要实现一个微信抢红包这样的功能,你会去怎么实现这个,这个能力?
回答用 redis setnx+延迟队列+mq
7. 那你这种业务这个方案的话怎么去实现高并发呢?比如说同时有 100 个人抢这一个红包。
我:不太会,就回答了加锁,然后说 Redis 的 decr 和 incr只会扣减一,没法保证红包金额(这里一通乱答)
面试官:那有没有一种更优化的方案?因为我们按刚刚的方案来说,比如说一个抢红包的一个请求过来,或者是多个抢红包请求过来,那我们一定是要用锁的形式先抢占,所以我先相当于是我抢占了这个锁,我才能去执行抢红包这个逻辑,对不对?那执行抢红包这个逻辑,这会就涉及到一个问题,如果这个逻辑比较复杂,或者是它里面计算时间比较久,就是计算 IO 比较久的话,所有大家都会去等待,有没有方案让我提前去,或者是有没有方案是来减少我这个计算相关的一个时延?
我:不太会,回答了线程池(依旧乱答)
面试官说:线程池,它也是因为你线程池,无所谓,你创建新线程,还是你拿新的,还是用线程池里面已有的线程来去做执行,它都会要等待,对吧,比如说同时我有 100 个人请求都来了,那你可能就得有 100 个线程,对吧,大家都得去等待,谁拿到这个锁,谁再去执行抢红包这个操作。
我说:不太会,不了解 cpu 计算场景怎么优化,只知道 io 密集场景可以用虚拟线程
面试官说:比如说我刚刚提到了一个点,就是能不能把 CPU 计算前置。因为我们现在这个业务场景是什么?就比如说一个红包有 100 个 100 元,我要分 10 份。所以说他其实对于第几个人来他其实不在意,就是说现在有或者是有抢没抢?或者是这个现在当突然有多少人来抢?其实对于红包,发红包这个事情来说,或者抢红包这个概念来说,它其实是可以预先知道每个红包分成多少钱,是不是这个事情?
我:用 Redis 先做预热。
面试官:对,那你比如说这个方案的话,我们要怎么去做呢?有一些哪些实现的细节,或者哪些数据结构呢?
我:提前写死金额存在 Redis 里,但每份红包的金额写死不公平(此处省略一堆)
面试官:涉及到公平,那你觉得怎么不公平?写死的不公平的原因是什么?
======= 后面都是对这个场景设计的探讨,此处省略跳过========
8. 了解微服务吗
不了解,面试官就跳过了
9. 那我们聊一下本地事务加任务补偿怎么去?当时是怎么去实现的?【项目】
10. 发散聊一聊对于 vibe coding 相关的一些理解,或者是对于大语言模型,你最近有哪些参与度?或者是有哪些去研究的点吗?
我脑子一热回答了 openclaw
11. 你觉得它用 Openclaw 或者是龙虾这个东西和我们直接去使用大语言模型最直接的区别有哪些?
答了 Agent 和大模型的区别,补充了 skill、mcp、Function call
12. 那你自己又玩龙虾,主要是做了哪些?帮你辅助了哪些功能呢?
回答写定时任务每天帮我拉 github 的热榜和股票(抄群友 maple 的)
13. 那其实在于你实际工作过程中,这个龙虾其实也没有发挥更多的一个所谓的私人助理这个的作用啊?
我说想实现在飞书接入龙虾,然后实现 AI 办公
14. 你认为的在使用 AI 来进行办公的主要的一个业务场景有哪些呢?
我说开周会,可以用龙虾去发通知啥的
15. 公司用 golang 进行开发,除了会 Java 还会啥语言
我说学习了 go 的语法 和 gorm,但没学完 grpc
16. 那你现在的学习路径是怎么样?通过什么样的方式来去学习的?
我说看官方文档还有字节和七牛云的开源文档
17. 我看你这边游戏经历里面主要是玩 MOBA 类的,然后你还比较有感兴趣的就是他怎么支持百万人同时在线这个问题,那你自己是怎么去考虑的?
我说实习的时候调研过将单机设计成联机,用 supabase 的 real time机制
18. 对于传统的像英雄联盟也好,王者荣耀也好,它除了在局内对战,它其实还会有更多的一个游戏养成,还有一个社交的一个游戏场景。那它们两个同时支持百万在线,可能它们的一个实现模式会不太一样,这个里面有去有考虑过它们之间的不同吗?
我说没考虑过
19. 那考虑到同时在百万同时在线的,除了说你刚刚有一个 real time 来实时通信,那还有一个点就是在于它同样的一个单机肯定是不可能支持这么大的一个的用户量了,它一定涉及到一个集群。你对于分布式部署有过相关的一些经验吗?
我说没有,只知道 k8s
20. 你可以理解为 K8S 作为一个编排容器,它就是来去做动态缩扩容的,但是我们在考虑的是为什么要分布式部署,或者是它主要能应对哪些应用场景?这个事情有了解过吗?
我不会,就答了扛流量,通过负载均衡的轮询或者随机策略去访问实例之类的。
然后面试官给我讲解了分布式部署,比如垂直分布和纵向分布....(此处省略一百字)
反问阶段:
1. 表现
面试官说:表达很好,准备很充分,思路很清晰,不用太过担心
2. 业务
面试官说:组内不做鹅鸭杀,做的是小游戏品类,比如说像最近广告特别多的无尽东日,还有之前比较火的什么冒险大作战、寻道大千这一类的游戏,其实它的游戏载体是在微信或者是抖音这样的一个平台去进行一个游玩。
(因为我游戏经历里写了 moba 类游戏,面试官又给我讲了和 moba 类游戏的区别)
面试官说:对于我们这边的服务器开发的话,就是说从客户端的所有的链路,比如说 Websocket 的建立, Websocket 的一个连接管理,以及所有的客户端的请求的分发处理,以及对于不同的业务模块,比如说它的排行榜模块,它的商城模块,它的匹配模块,还有一些它的所有的养成模块都需要去我们进行一个开发的和介入。
面试官说:我们会以项目组的形式来进行开发,对于我们当前的组内的话,主要是人员是在 10 人左右,程序员是目前是在职有4位程序员, 3 位客户端,一位服务器开发。然后除了刚刚提到的我们要开发游戏项目内的业务功能外,同时还要去考虑到对于我们最终的服务的部署,服务的上线以及最终线上的一个问题的定位和快速的修复,就是我们现对于当前的程序员来说,他不仅仅是不会像早些年一样会区分你是一个开发,你还是一个测试,你还是一个所谓的运维。因为现在的话大部分运维就是给你直接提供云服务。给你提供云服务机器,然后对于服务内如何去搭建,如何部署,都是由我们项目内的开发人员来去完成的,所以说在我们这个游戏的或者是项目组内,如果要参与的话,其实你可以认为是从基础到上线运维到问题修复这块,其实是会有一个全面甚至是一个全方位的一个参与度的。
面完两分钟后,hr 说下午谈 offer(史上最快.....)
#发面经攒人品#
全部评论
相关推荐
今天 12:24
香港理工大学 产品经理 点赞 评论 收藏
分享
查看8道真题和解析