lobby game后端架构

大厅是供用户选择游戏对象的场所。图中是大厅的基本形式,左侧的目录树有三个层级:游戏(game)、分区(zone)和房间(room)。每款游戏都会基于某些规则来划分zone和room 。游戏的基本单元是游戏桌,即图中右侧的那些table,当table上“积攒”的玩家数满足要求时,该table上的游戏即可开始。

若要搭建一个大厅系统,后端应该具备一个负责客户登陆的loginsvrd,一个主管各游戏服的lobbysvrd,一个用于访问数据库的dbsvrd ...


逐步实现TCP服务端Step06-1:Libevent

Libevent是基于C语言开发的高性能开源通信库。Libevent是Reactor模式的一个实例。Reactor是一种事件处理模型,其基本形式: 其中,Reactor为核心部分,它是使用者启用Reactor机制的入口。EventDemultiplexer是事件分离器,Reactor使用它来监测事件的发生。Processor是事件处理器,它用于处理,或者说响应某个特定的事件。ConcreteProcessor的存在是为了方便模式使用者定制事件处理逻辑。Reactor、EventDemultiplexer和Processor三者基于句柄(Handle)建立关联,比如socket文件描述符 ...


逐步实现TCP服务端Step06:使用轮子

这一系列从零开始实现了一个处理简单业务(echo)的服务端,现实当中不太可能一切从头开发。所谓的服务端开发,更多地是去实现业务逻辑。务实的做法是使用成熟的“部件”快速搭建基础设施,然后专心开发业务。

一个后台系统可粗略地分为三个单元:通信单元、业务单元和存储单元。三者的作用从名字即可看出。前面的大多数篇幅,实际上都是在讨论通信单元的实现。由于不关注具体的业务,与业务单元有关的讨论几乎没有。至于存储单元,上篇讨论了dbsvrd与MySQL,其具体实现见antframe项目。

下面讨论一下 ...