网游服务端技术总结 基于mangos源码 (一)

整个game server的并发模型

一 概述
game server至少要提供如下几类的功能 :
1、响应客户端请求-------WorldRunnable
2、后台命令 -------CliRunnable
3、分布式架构(RMI等) -------MaNGOSsoapRunnable

可以看到针对这几类功能,mangos都给予了支持。

二、WorldRunnable响应客户端请求的并发实现
game server会提供很多服务,如组队、加好友、交易、走路、战斗……,从宏观上讲这些服务是同时对外提供的,另外IO操作是费时的,
必须将IO与逻辑处理分开,这样的话一个基本的实现是这样的:
1、开启IO线程,所有费时的操作交由此处处理 WorldDatabase.ThreadStart();
2、利用协程来实现各个子系统,或者利用心跳来实现各个子系统的调度(不能开很多线程,线程代价太高)

三、Mangos的心跳实现
void World::Update(uint32 diff)
基本上包括几类:
1、检查定时器---------------时间
2、刷任务
3、维护session---------------------人物
4、全局环境更新(map、battleGround)--------地点
5、处理服务器事件------------------事件
6、其他(数据同步、后台调试、IO回调……)

四、game server运行的机制
1、定时器触发
2、事件触发(松耦合)

五、典型的一种service的实现方式
1、IO协程将cammand入队
2、worker协程 依次fetch、execute
核心数据结构是线程安全的队列
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值