Python游戏服务器开发日记(一)目标
到了新的环境,老大让我有空研究下一代服务器技术,作为一个长期任务。
新的服务器想达到的目标:
1、分布式系统,对象(Entity)之间的关系类似于Actor模型。
2、逻辑服务,是单进程、多线程的,对象之间发消息进行通信,但是简单读取属性尽可能做到直接。
3、必须使用Python语言。开发方式类似于BigWorld引擎。
这个目标还是很宏伟的,只能从底层一步一步攻克。在这里记录一下解决问题的过程,既是分享,也是督促自己不要半途而废。
我个人极度喜欢skynet框架,由于很多原因,skynet框架几乎不可能修改为Python脚本。
原因除了众所周知的GIL(Python全局锁)问题以外,还有Python的Interpreter是极为重量级的,如果像skynet的独立lua_state那样使用,怕是什么都不做也能把内存全部用光。所以还是用普通的对象表示每个Entity,在进程内保存所有对象即可,逻辑进程之内,也并不存在“独立服务”的概念。
但是,在研究了skynet之后,我认为以后必然会大量参考skynet的成熟做法,甚至copy很多C语言层的代码。毕竟和高手对架构的理解,和C语言经验上,实在是差的太多。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341