1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 服务器架构-架构图(二)

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

时间:2021-11-23 04:06:42

相关推荐

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

前言

项目不同,架构自然也不同,所以没有唯一的架构,只有合适项目的架构。

这章以手游(MMORPG)为例。

1:架构图

大区服架构

黑色框 唯一性

红色框 可不唯一

黄色框 后端 一区一服 多少区多少个

2:以1 说明

1>登陆

[验证参考](/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

九宫格

跳跃表+十字链方式 参考 /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只能算是网络层的轮子但是因为其众多的用户还是很不错的

/cloudwu/skynet

A lightweight online game framework

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

pomelo

网易开源的框架,支持分布式, 周边完善

一个用于Node.js的快速,可扩展的分布式游戏服务器框架

/NetEase/pomelo

一花科技等棋牌在用

NoahGameFrame

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

/ketoo/NoahGameFrame

代表做全民无双

kbengine

c++和python实现的MMOG游戏服务器框架,这个已经被电魂千万收购

/kbengine/kbengine

已经被电魂网络收购

ET

Unity3d 客户端c#服务器框架,支持分布式客户端服务器共享代码

/egametang/ET

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

pitaya

基于golang,可伸缩的分布式游戏服务器框架

使用的技术比较先进 ETCD实现服务发现 NATS GRPC实现rpc可以docker部署, 国外公司TFG Co 开源项目

/topfreegames/pitaya

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

4:demo

后续陆续上传

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。