讨论pomelo的适用范围和种种坑。

pomelo很难适用于单主机业务的。
如果用pomelo建立一个进程级别的单一主机的服务器集群,那是无视现实的硬件条件,导致众多问题,比如内存爆掉等等。
node.js执行一个kick过程,确实是单核执行。但是,无数个kick执行,node.js可以尽可能调用多个核去运行这些kick任务。只是,单个node.js进程很难实现百分百的多核CPU使用。
所以,不能因为node.js充分使用多核,而在单主机的环境下,建立上一大堆server。这是需要代价的。
一个pomelo的server的内存开销最少需要40MB以上。开十个server,就需要至少400MB以上。
多进程显然要比多线程更加消耗硬件资源。
作为单主机业务,分出无数个server,内存爆掉,是正常的。

pomelo的rpc模块,并不是省油的灯。对于强联网战斗游戏来说,不太能接受。信息一多,卡住是正常的。难道是node.js的效率太差?非也,按照pomelo的rpc模式设计,即使是使用C++开发,也难有很好的效率。一个area建立一个server,玩家数据在各个area切换之间,必须反复地释放和创建。对于单主机来说,这种运算消耗是很大的。如果把所有的area放在一个server上,那么area切换绝对很快速了。只要把玩家数据的引用放到另外一个场景就可以了。对于单主机,这个可以省下很大cpu资源。

也许有人说,可以防止一个地方出问题,整个服务器就会挂掉的问题,难道多个服务器集群就可接受这种问题?

因此,针对单主机,最多开几个server。如果要求网络链接要求非常及时,那么使用单个server。
如果是多主机,没得选了,只能使用多个server。

标签: pomelo
linyouhappy 在 2016-6-26 18:46发布
linyouhappy 在 2016-6-27 07:13重新编辑 分享到 weibo
回到顶部