论网站建设情况,价格低,郑州做旅游网站,网站改版活动传统mmo的服务器架构
网关---游戏逻辑服---游戏db服 网关--- 游戏逻辑服---关系服务器master
其结构简单#xff0c;方便维护#xff0c;但是在应对射击游戏时候暴露出很大的缺陷
但是随着大dau产品的像和平精英等游戏问世
腾讯主要的服务器是基于tbus4j…传统mmo的服务器架构
网关---游戏逻辑服---游戏db服 网关--- 游戏逻辑服---关系服务器master
其结构简单方便维护但是在应对射击游戏时候暴露出很大的缺陷
但是随着大dau产品的像和平精英等游戏问世
腾讯主要的服务器是基于tbus4j,基于共享内存 socket的数据交互该框架的相对重度在外面资料相对比较少基本基于共享内存可以支持的c重启因为网关tconnd lobby是都是共享内存交互tconnd基本上不重启如果涉及到加字段的lobby 是需要重启天美王者的底层是这样去实现晚上经常看到他们重启。
和平的是用Lua基于tbus 的tapp 导出lua run ontick onstop onreload作为程序入口基于tbus 导出发送、接收数据的回调。
在针对遍历玩家行为采用类似遍历玩家行为采用分帧做法去处理内存增长多少以后启动GC,这个值要适当,否则会造成明显CPU锯齿根据各个系统去取制定
基于数据Table去pack可以做到支持无间断更新还有采用版本号去支持跨版本DS这样可以让玩家尽量的留存在游戏避免更新。
腾讯的产品使用TcaplusDB,做为数据数据库在数据库保存上采用最新版本号保存防止数据覆盖问题。
为了防止的单点在仲裁服那边采用租赁协议tcaplushdb的最新版本号机制去实现主从的切换,仲裁服获取最新续约的时间然后同步到路由服路由服更新的仲裁服的节点状态。
网关 --游戏逻辑服 ---游戏db服 路由服务 索引服 仲裁服 好友服 军团服 房间服 匹配服 对战服管理服 邮件服 聊天频道服
像邮件服都才采用Lru的机制去做设计的缓存热数据在队列的淘汰没用的数据
在分布式的负载均衡hash 算法、主从、randid的生成在大厅这边生成确保可以hash 到目的服务器提高负载能力
对战服管理服采用开房间主要是采用fork的参数机制的定时的上报的机器的负载信息cpu、内存、房间数、真人数房间服那边的跟筛选压力最低的战斗服然后同步到战斗管理服由战斗管理服去分配的端口然后通知客户端客户端再去连接的对战服的端口、IP然后进行战斗战斗结束后把战报发送战斗管理服由它经过路由再转发到大厅如果玩家在线直接保存在到历史的战绩如果不在线保存到离线数据等玩家上线再加载处理离线数据然后加入到历史战绩。
匹配服玩家点匹配然后根据的玩家hash到对应匹配服根据2人组 4人组 单人组进行男女混合搭配在匹配队列是根据段位的设计的slot挂在这些队伍信息然后优先筛选的属于玩家段位附近的超时再扩展扫描段位的然后分组的把匹配成功后把把队伍信息通知到roomsvr。roomsvr再把筛选到的ds战斗管理服把房间队伍消息转发过在上飞机前房间不够的从再去转到匹配服再去补人如果再补不到人最后补机器人。机器人段位信息采用的是真人的段位四个码求和的除总人的均值然后再把消息转发到ds。
基于
和平的协议主要lua table 动态协议有点动态扩展缺点也明显很难维护的。
压缩算法 采用的是lz4具备有 压缩、解压缩性能高的特点