《魔灵保卫者》服务端架构及实现

本文详细介绍了从0开始搭建游戏《魔灵保卫者》服务端的过程,包括协议处理、登陆流程、充值流程以及核心实现技术如网络通信、数据存储、并发控制、事务管理和存储结构等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《魔灵保卫者》这款游戏的服务端是我从0开始搭建的,一直到游戏上线。最高在线2000人左右,架构如下图:
这里写图片描述
协议处理流程
1.通信层接收客户端的请求,通过协议号定位到业务层的处理类
2.业务层执行相应的协议逻辑,数据变动提交给数据层,到这里就返回响应客户端了
3.数据层定时同步变动数据到数据库

登陆流程
1.客户端登陆平台
2.客户端拿到区服列表
3.客户端选择区服请求登陆游服
4.游服请求登陆验证服
5.登陆验证服请求平台验证

充值流程
1.客户端想平台请求充值
2.平台回调充值服
3.充值服回调游服

具体实现
1.网络通信
设计通信协议,基于Netty做封装,通过自定义Annotation 定位业务层的处理器,业务层只需关心逻辑实现,不用关心网络发送接收
2.数据存储
基于tomcat-jdbc.,dbutils 做封装,实现业务层无sql,只需操作对象,数据层自动生成SQL存储
实现异步存储,数据的变动会先保存在ConcurrentLinkedQueue 中,每几分钟会从队列拿出然后经过优化后批量存储
3.无锁并发
通过对象的 deep copy 实现业务层的无锁开发(类比svn),提供OptimisticLockException异常来实现业务重做
4.事务
通过ThreadLocal技术将变动对象保存在当前业务处理线程,在协议处理最后commit到数据层的主缓存,要么全部提交成功,要么全部放弃,以此保证事务
5.存储结构
将要存储的数据对象通过 fastjson 序列化成字节数组存储到mysql的 blobdata中,这样加减字段数据库表无需任何变动
6.对象
以模块划分,每个模块会有多个handler对象,每一个handler对应一个具体协议处理逻辑。每个模块对应一个service提供公共服务。其他的还会有数据表对象entity,静态配置对象resource等对象,每个对象职责清晰.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值