一步一步开发Game服务器(一)

时间:2024-07-13 00:05:56

什么是服务器?对于很多人来说也许只是简单成为在服务器端运行的程序的确如此,服务器通常意义就是说在服务器端运行的程序而已。那么我们怎么理解和分析游戏服务器哪?

传统意义上来说,程序运行后,正常流程,

启动 -> 加载必要数据 -> 分析必要数据 -> 接受连接 -> 登陆系统 -> 交换数据 -> 退出登陆。

这样单线程服务器的思路就算完成。有经验的同学都可以看得出这是最简单的程序运行流程,有一个最主要的问题就是这是一个单线程的流程,承载量自然就不大,吞吐量也就自然下降了。

如果改为多线程怎么办呢?改成多线程后又怎么保证数据的完整的性,准确性呢?这个问题我会在后面的文字里面一一讲解。

通常在游戏服务器设计中,分为单服务器和组服务器,

单服务器(包括登陆模块,逻辑模块,数据交换模块);

组服务器则为,登陆服务器,逻辑服务器,和数据交换服务器。这里又可以分为

登陆服务器1 -》 逻辑服务器1 -》 数据交换服务器1,

登陆服务器2 -》 逻辑服务器2 -》 数据交换服务器2,

登陆服务器 N -》逻辑服务器N -》 数据交换服务器N,

通常情况数据交换服务器可以提供一组登陆和逻辑服务器使用。

这里的数据交换可以理解成数据缓存模块,数据更新模块,数据存储模块。是程序数据和数据库存储数据交换用的,

一般情况下逻辑模块的设计都是很复杂的东西。后面的文章我一步一步去剖析它。