《魔灵保卫者》这款游戏的服务端,架构如下图: 

魔灵hive账号密码怎么修改_客户端

 

协议处理流程 

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等对象,每个对象职责清晰.