各位,nodejs做长连接游戏服务器可以吗,性能如何?
有公司真的这么搞嘛?
我不太懂这一块,谢谢大家。
12 回复
http://centminmod.com/siegebenchmarks/2013/020313/ 4个node 600并发下能承载4000请求每秒 4个nginx worker 600并发能承载2000请求每秒
@HelloKevinTian 资料能分享下么?对比的环境是什么?
我个人认为一般水平的C++肯定是干不过node的,但是水平相当的话,node肯定不如c,node与v8交互需要多次不必要的内存copy,这对性能消耗是很明显的。v8和c在性能上还有差距的。
游戏应用场景和web是非常不同的,游戏主要消耗计算资源,web主要消耗io资源,node更擅长io。
为什么会不适合呢,nodejs 本身架构 和游戏服务器的设计非常相似,如果担心内存问题,可以使用外部缓存服务器 redis,落地使用 数据库就好,他本身的IO异步特性对于游戏这种CRUD频繁的需求很适用才对。另外,如果工程化的 也建议使用typescript这种强类型的编译语言,至少在编译过程能解决你很多问题。你会发现以往用c++写起来很麻烦的,现在用node都很轻松,以往你要清楚如果用c++实现一套异步的IO流程 还是比较麻烦的,然node这块native就是如此。当然问题也是有的,如果习惯了同步写法,使用node时候要注意不少异步问题,当然这个你写多了 就清楚了。例如:n个连接读取一个玩家数据,这时候缓存中未命中,需要从db中读取,那这时候你就需要做下异步控制。希望能帮到你。