hello, 大家好,我最近在用erlang做游戏服务器,采用了进程字典存储玩家数据,一个玩家一个进程,让玩家上线时fork出进程来处理,这样带来的问题是:当玩家不在线时没有该进程存在,但是有时候游戏中需要很好的操作不在线玩家数据,读取和修改啥的,所以我想,能否在游戏服务器启动时就把数据库中所有玩家进程建立起来,永不退出,这样好吗? 会不会吃内存太凶,各位有这样实践过的吗?
--
您收到此邮件是因为您订阅了 Google 网上论坛的“Erlang China”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 erlang-china...@googlegroups.com。
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
对,如果玩家进程不在,我又需要从获取它的数据,就只有从mysql从读取了,但我不想这样,我想让进程常驻,比如假设服务器3万用户,就有3万个玩家进程,可以适当清楚掉僵尸用户的进程。
--
您收到此邮件是因为您订阅了 Google 网上论坛的“Erlang China”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 erlang-china...@googlegroups.com。
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
On Monday, March 4, 2013 at 10:35 PM, 卓 一抗 wrote:
如果不用mysql,全部ets+mnesia,就没有我的问题了,因为ets和mnesia不管玩家在不在线都能方便的访问数据。主要是因为我已经选择了mysql+进程字典的方法,所以想把所有玩家进程建立起来,到达数据都在内存的效果,也不用单独写一套操作mysql的读取离线玩家数据的接口。
On Tuesday, March 5, 2013 at 10:11 AM, 卓 一抗 wrote:
多谢指点,玩家数据的分布式方案怎么理解呢,能否详细描述下?