服务端开发笔记一:服务器架构探索

一 背景

在网易的第一个项目《恶魔不要啊》到现在基本结束了,马上要开新项目了。

下一个项目在开启之前打算先做一个测试项目,因为目下HTML5游戏特别火,下个项目需要支持HTML5。

目前国内可以选择的有cocos2d-js和egret,这个测试项目同事有这两个引擎开发,对比一下两个引擎,看看选哪个比较合适。

之前一直做前端,下个项目打算转后端了,下面是我们这个测试项目用的服务器架构。

服务端开发笔记一:服务器架构探索_第1张图片

二 gate服务器
gate服务器有两种结构都可以接受。
1 不分区:完成登录认证,通过路由,返回一个connecter服务器;
2 分区:返回所有connector服务器及其在线人数给前端,前端选择不同的区。
之后客户端会断开此链接,链接connector服务器。

三 connecter服务器
维护客户端和服务器之间建立连接。
中转客户端和服务端之间的消息。
如果是分区的结构,还需要做登录认证。

四 auth服务器
登录服务器主要有以下几个功能:
1 注册
2 登录验证

五 logic服务器
1 logic服务器
逻辑服务器是游戏中的逻辑处理的接口,一个很多组服务器。
一般有场景服务器、聊天服务器、组队服务器、排行服务器等等。
2 domain
处理服务器相关逻辑运算

六 data服务器
1 实体entity
加载到内存中的游戏数据。
如果entity中的数据发生改变,会同步到客户端和数据库。

2 data服务器
同步实体和数据库中的数据。


用的是网易的开源服务器引擎pomelo,有兴趣的可以参考下。


----------------------------------------------

2015年4月29日更新

----------------------------------------------

后来发现,对于上面二、三种提到的分区方式,不是很合理。

这样的结构所有的数据都是在同一数据库中,需要对每个玩家添加一个区字段,来标记所选择的服务器。

对于指定服的操作需要根据区字段,检索出所有的玩家,效率太低。

目前考虑到的可行方法是,另外在架设一台提供服务器列表的服,分区通过不同的gate服务器实现。


你可能感兴趣的:(服务器)