本文主要阐述游戏服务器之逻辑服务器的资源分布
资源分布图如下:
线程类型分成三大类:主线程、网络线程、业务线程。
一、主线程
1、程序主线程(线程1)
读取服务器配置,读取逻辑数据配置,启动账号管理器、日志管理器,启动逻辑引擎(启动账号管理器、启动db管理器(连接数据服务器进程)、启动网关、启动日志管理器、初始化游戏命令)。
二、网络线程
1、逻辑网关(线程2-4和n)
框架是使用多网关结构的逻辑进程。每启动一个逻辑网关,就会启动对应的网络连接监听、接收、发送、和数据缓存处理线程:
网络线程类型包括:
(1)网络连接监听线程
(2)网络数据接收线程
(3)数据缓冲处理例程
队列交换,和数据拷贝线程到对应的玩家数据会话的缓冲区里
(4)网络数据发送线程
数据发送线程的数量是配置的,在服务器的配置文件里。目前配置两个发送线程,每个发送线程有两个发送队列(一个用来追加,一个用来处理发送)
三、业务线程
1、db管理器线程(线程5)
连接到db服务器,发送消息并处理响应消息,读写档案。
2、账号管理器线程(线程6)
处理玩家登陆请求(需要直接查数据校验),和处理玩家状态机。
3、日志管理器线程(线程7)
接收日志(逻辑引擎的或账号管理器的)并写到mysql(方便后台网站查询)。
4、逻辑引擎线程(线程8)
(1)处理新进入的玩家
(2)处理玩家的网络数据包和消息系统
(3)处理角色逻辑,处理失效玩家
(4)处理ai
(5)删除要释放的道具、副本等
|