目录

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

目录

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

一 背景

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

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

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

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

https://img-blog.csdn.net/20150428121745384?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVmZW5nMDk5MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

二 gate服务器

gate服务器有两种结构都可以接受。

1 不分区:完成登录认证,通过路由,返回一个connecter服务器;

2 分区:返回所有connector服务器及其在线人数给前端,前端选择不同的区。

之后客户端会断开此链接,链接connector服务器。

三 connecter服务器

维护客户端和服务器之间建立连接。

中转客户端和服务端之间的消息。

如果是分区的结构,还需要做登录认证。

四 auth服务器

登录服务器主要有以下几个功能:

1 注册

2 登录验证

五 logic服务器

1 logic服务器

逻辑服务器是游戏中的逻辑处理的接口,一个很多组服务器。

一般有场景服务器、聊天服务器、组队服务器、排行服务器等等。

2 domain

处理服务器相关逻辑运算

六 data服务器

1 实体entity

加载到内存中的游戏数据。

如果entity中的数据发生改变,会同步到客户端和数据库。

2 data服务器

同步实体和数据库中的数据。

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


2015年4月29日更新


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

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

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

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