开源服务器框架NoahFrame分享 第一章:游戏服务器的进化

2017-10-31

(5)proxyserver在架构中主要用与代理client数据请求的作用以及核对消息的作用,一启动就需连接到worldserver并接受管理,并从worldserver获取到gameserver(同一个服)列表然后主动连接到所有的gameserver;proxyserver会主动汇报自己的状态和开放端口给worldserver。同时,次节点可以支持配置多台服务器以避免单点,而且这些无需额外写代码;

3:插件和模块机制

下过代码观察的同学就肯定知道,所有服务器中,可执行文件都是一样的,都是一个NFPluginLoader_d这样的执行文件,他启动的时候会自动检测Plugin.xml目录下面的所有插件(plugin),然后加载所有的插件,开始帧循环;而在每个插件中,又有大量的各种程序员们根据功能的归类划分出来的模块(module),插件又会初始化这些模块,然后启动帧循环。插件Plugin作为模块Module的容器/承载着,本身提供了他所承载的Module创造,初始化的任务;所有的Module并行完成所有的业务逻辑,Module与Module可以互相调用接口,为对方提供服务。

4:actor机制

actor机制主要用户解决同步堵塞访问的瓶颈,比如数据库访问,比如http请求,比如长时间运算等问题;在NF中,大量使用了actor技术,后续还有计划,让每个scene都运行一个actor,这样来提升gameserver的承载能力;

5:直链nosql数据库机制

从架构图上可以看出,gameserver直连了数据库,并没有像传统架构那样使用一层数据库代理,是因为基于目前nosql越来越优秀,夸服同步服务需要也越来越旺盛,需要直接内存数据库以开发更复杂的业务。同时,在直练数据库的情况下,又提供actor服,解决了同步存储/加载数据的堵塞问题,使用NF即可支持同步/异步访问数据库;同时,协程技术也支持同步代码异步性能来支持此特性,让程序员不用担心io堵塞问题写同步代码,大大提升了效率;

上述为NF设计上的一些大概内容,如有兴趣,请继续跟进本博客,会持续把整个NF的设计过程讲解出来,也希望持有不同意见的同学加入交流。

NF项目为开源的分布式服务器解决方案,其中包含了网络库,actor库,以及数据驱动等新技术,能大幅提升开发效率节省开发周期以及提高程序的稳定性。


相关游戏

最新合集

相关文章

网友评论

    加载更多
    回复 [ ] 楼取消回复