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

本文详细介绍了游戏《魔灵保卫者》的服务端架构,包括通信层、业务层、数据层的设计,以及登录流程、充值流程的具体实现方式。文章还深入探讨了网络通信、数据存储、无锁并发、事务处理等方面的技术细节。

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

《魔灵保卫者》这款游戏的服务端,架构如下图: 
这里写图片描述 
协议处理流程 
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等对象,每个对象职责清晰.

http://blog.youkuaiyun.com/chenyun19890626/article/details/50611295


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值