服务器架构-架构图(二)

前言

项目不同,架构自然也不同,所以没有唯一的架构,只有合适项目的架构。
这章以手游(MMORPG)为例。

1:架构图

大区服架构
黑色框 唯一性
红色框 可不唯一
黄色框 后端 一区一服 多少区多少个
在这里插入图片描述

2:以1 说明

1>登陆

 [验证参考](https://blog.csdn.net/yunteng521/article/details/128255763)  

(1)手游一般通过SDK 到平台验证
(2)把平台返回的类TOKEN与类UID加渠道号 发送到登陆服务器,
(3) 公告服与列表服 验证下 是否合法,
公告服 可以合并到登陆中,根据渠道号登陆后,直接给前端相应的公告
列表服把相应的serverid 发给前端(上次登陆服,或有角色的服务等相关信息)
选择服务器后,根据选择的ID 发送相应的 gate 地址

2>网关

		gate通过前端发送过来的信息 验证合法性,通过后,链接到相应逻辑服(逻辑服可以有多个)

3>逻辑服

     主要存储角色数据,状态,消息转发        

4>场景(副本),聊天,工会,好友 ,LOG, gm等

5>跨服

    跨服副本,大区排行,跨服好友聊天等  
    跨服副本   跨服特色副本/场景 ,本服无人时跨服组队副本

6>角色服

 角色名与ID 唯一,方便以后合服

7>数据存储与通信

(1) 进程间通信可以选择SOCKET,MQ,具体看业务,看需求,没有绝对的说使用个
redis,etcd一样
(2)DB 为后期准备可以考虑 角色信息,工会,好友 分库,不同进程加载各个库

8> AOI

九宫格
跳跃表+十字链方式 参考 https://github.com/qq362946/AOI

9>游戏类型延迟时间

不同类型的游戏延迟容忍度
格斗游戏:25毫秒
fps和战略游戏:100毫秒
mmorpg:300毫秒

10>other

docker,k8s 运维管理
kafka,elk+filebeat 日志 收集 处理
DB 备份 策略 eg:一周一天全备,其他天增量备份 都放到凌晨
mysql 根据需求 是否做 MHA,主从,集群等
c++ 内存泄漏检测工具 valgrind
通信协议 protobuf 消息定义可参考

3:其他架构参考

skynet
云风大神的框架这个基本上使用很多的, c+lua的框架。 skynet只能算是网络层的轮子但是因为其众多的用户还是很不错的
https://github.com/cloudwu/skynet
A lightweight online game framework

使用此引擎开发的游戏众多,很多棋牌小企业在用,简悦的陌陌争霸、食物战争等等很多产品

pomelo
网易开源的框架,支持分布式, 周边完善
一个用于Node.js的快速,可扩展的分布式游戏服务器框架
https://github.com/NetEase/pomelo

一花科技等棋牌在用

NoahGameFrame
这是一个快速、可扩展、分布式的C++游戏服务器引擎/框架,包括actor库、网络库,可用作实时多人游戏引擎(MMO RPG/MOBA),支持C#/Lua script/Unity3d、Cocos2dx
https://github.com/ketoo/NoahGameFrame

代表做全民无双

kbengine
c++和python实现的MMOG游戏服务器框架,这个已经被电魂千万收购
https://github.com/kbengine/kbengine

已经被电魂网络收购

ET
Unity3d 客户端c#服务器框架,支持分布式客户端服务器共享代码
https://github.com/egametang/ET

经过产品验证并且教程比较完善

pitaya
基于golang,可伸缩的分布式游戏服务器框架
使用的技术比较先进 ETCD实现服务发现 NATS GRPC实现rpc可以docker部署, 国外公司TFG Co 开源项目
https://github.com/topfreegames/pitaya

zooba appstroe排行很高的moba、吃鸡类游戏

4:demo

后续陆续上传

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值