今天在知乎上看到这样一个问题:"为什么游戏公司的 Server 不愿意微服务化?

1.背景介绍
最近面试了一家游戏公司(满大间的,有上市),我问他,公司有没有做微服务架构的打算及考量?
他很惊讶的说,我没听说过微服务耶,你可以解释一下吗?我大概说了,方便测试,方便维护,方便升级,服务之间松耦合,可多语言开发,自动扩容…之类的点。
然后他说游戏 Server 不太需要微服务,因为要求 Real Time,做微服务会影响效能,分模组来开发就好了。
我也不确定,但微服务不是趋势吗?特别是大公司,游戏 Server 的服务应该很容易拆分吧?
下面,我们来看看两位高赞回答。
2.hongjic93 是这样回答的
比如 MOBA 类游戏/王者荣耀/LOL,就看王者荣耀的客户端吧,想象一下。
账号系统,符文系统,英雄系统,皮肤系统,好友系统,好友之间 Messaging,这些都是常规操作,如果流量足够大,当然可以用微服务的架构去做。
不过这不是这个游戏的核心,核心是 MOBA:Multiplayer online battle arena。
特性是什么?10 个人之间各种游戏事件的高速多向通讯,Streaming/Broadcast/Multicast/Pubsub 各种通讯模式。
所以游戏的核心在于小规模群体之间的高速网络通信。就是对方说的 Realtime。多了一个 10ms 的延迟玩家就要骂娘了。
①微服务为了把业务完美拆解,把原来的同一个进程里的模块拆分成不同的服务,显著增加额外的网络开销。
更别说什么 Service Mesh,各种 Gateway,Proxy,Sidecar,简直就是担心延迟太低。
②微服务基本只有 Request/Response的模式。做不了 Streaming?微服务通常要求应用是无状态的才

游戏公司的 Server 通常不采用微服务架构,尤其是对于实时性要求高的游戏如王者荣耀。微服务会增加网络开销,影响实时性能,且游戏的高速网络通信和状态管理与微服务理念相悖。此外,游戏服务器往往使用长连接,需要快速响应和低延迟,这与微服务的无状态和请求/响应模式不匹配。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



