游戏思考15:全区全服和分区分服的思考
文章目录
- 一、全区全服特点
- 1)架构图
- 2)特点
- 3)关于拆分多进程业务的作用
- 二、分区分服特点
- 1)架构图
- 2)特点
- 三、两者的对比选择
- 1)尽量选择`全区全服`的设计方式,优点如下:
- 2)两者在架构上的区别
- 3)后台压力的区别
- 四、随意留言
一、全区全服特点
1)架构图
2)特点
1)全区全服就只有一个DB
2)全区全服没有分区的概念,但它会有一个中心通信模块,并且整个大区在逻辑上只有一个DB
3)全区全服画出了很多业务进程
3)关于拆分多进程业务的作用
多进程当业务进程的必要性
二、分区分服特点
1)架构图
2)特点
1)分区分服的每个服都有独立的DB
2)分区分服模型一般在前端会有一个导航模块,用于区服选择
3)区与区之间如果需要通信的话,往往会使用跨服模块
,对于一些需要跨服的功能,比如包含所有区的排行榜,可能还会为此增加一个公共DB(或直接存在对应服务器的内存上)。
4)从业务逻辑
来看,分区分服架构里每个区只画了一个「World」
5)分区分服架构下,大家认为每个区玩家数量比较少,也有可能受限于开发时间、开发资源、技术储备等原因,没有把业务逻辑拆分得足够细,因此一般只有一个「World」,或者把游戏逻辑放在少数几个进程当中。
6)分区分服中单机容量
可能受限
,我们建议要适当考虑平行扩容
相关的设计。像刚才说的单个「world」做平行扩容比较困难,是不是可以把核心逻辑拆分出来,也做成单个进程做单种业务的服务器
7)全区全服可以共享机器
。我们知道,游戏后台会有很多进程,但每个进程的资源消耗其实不一样。而我们虽然会有很多区,但做运营活动时,每个区参与的用户数量可能会有所区别。如果采用全区全服的方式,我们就可以共享机器资源
(会导致对资源调度、动态扩缩容和容灾备份的要求较高)
三、两者的对比选择
1)尽量选择全区全服
的设计方式,优点如下:
①后续运营运维成本会比较低,因为它物理上只有一个环境,我们投入的运维人力更可控。
②全区全服可以共享机器。我们知道,游戏后台会有很多进程,但每个进程的资源消耗其实不一样。而我们虽然会有很多区,但做运营活动时,每个区参与的用户数量可能会有所区别。如果采用全区全服的方式,我们就可以共享机器资源
缺点:
这也会导致对资源调度、动态扩缩容和容灾备份的要求较高。
2)两者在架构上的区别
(1)存储方式
的不同,导致需要在DB层做区分:全区全服就只有一个DB,但是分区分服的每个服都有独立的DB。
(2)游戏类型
的不同,导致数据互通性不同;逻辑服务器页游必要作区分,比如各个平台需要独立运营,独立结算,开服活动只能针对特定服等等;
(3)单服承载的玩家数量级
不同,导致架构上调整:全区全服所有玩家在一个服,分区分服玩家分摊在各个不同服,单服玩家数量不在一个级别,导致架构上的考量不同。
3)后台压力的区别
(1)DB层承载压力不同
:分区分服DB承载单服压力,一般游戏单服PCU是千级,甚至百级,DB读写压力小,采用MySQL基本满足要求;全区全服DB承载所有玩家,PCU达到百万级别,读写压力大,单一的MySQL不能满足读写压力,需要因为读写并发高的DB组件,比如互娱的Tcaplus,TEG的CMem等等。
(2)平滑扩容:全区全服的扩容是因为整个游戏后台,在外网不停机扩容中,需要考虑扩容对整个后台的影响,而分区分服因为面临扩容机会少,有开服情况,也是独立的新建整个服,对其他服基本无影响;
(3)容灾方面:全区全服在某个服务器进程出现问题时,该模块的压力可能会偏向同等功能的其他进程,需要处理雪崩情况,避免影响全服。而分区分服因为天然
的服与服之间的隔离性
,在这一块压力小很多;
四、随意留言
有的腾讯游戏会利用tredis去做全区全服,redis的读写速度如果磁盘是500MB/s,真正的读写速度能达到480-490MB/s,但是之后一段时间的存储io写磁盘的卡顿,会掉到50-80MB/s,这样的速度才能满足单DB对于全区全服服务器的要求,但是普通小公司就没有tredis这种随时宕机都能恢复数据的平台工具,一般都会采用mysql去存,而mysql集群的存储速度也会控制在500MB/s,需要做成协程配合进程的方式,如果不能改成异步协程链接mysql,那就需要做成多进程连接mysql或开线程池连接mysql的方式
游戏思考15:全区全服和分区分服的思考相关推荐
- 游戏全区全服和分区分服 QQ斗地主的设计
游戏全区全服和分区分服 QQ斗地主的设计 https://cloud.tencent.com/community/article/164816001481011910?fromSource=gwzc ...
- 一个游戏大量合服代表什么_[游戏服务器从入门到关门]4.分区分服、连服、合服...
相信大家都玩过分区分服的游戏,输入账号,选择区服(或是先选择区服,再登录账号,这两个逻辑不同),进入游戏,一刀999. 游戏中的每个区就相当于一个独立世界,每个区的玩家都是隔离开的,大家互不可见,每个 ...
- 分区分服和全区全服的对比
为什么要做架构的区分? 1.游戏类型的不同,导致需要在DB层做区分:全区全服就只有一个DB,但是分区分服的每个服都有独立的DB. 2.游戏类型的不同,导致数据互通性不同:逻辑服务器页游必要作区分,比 ...
- 浅谈全区全服架构的SNS游戏后台
首先说下分区分服和全区全服的概念,查了一下资料,没有找到合适的定义.说下自己的理解:所有游戏服务器都有玩家数据库,如果以数据库为单位划分Set,单Set如果能承载超过10万的同时在线,可以认为是全区全 ...
- 全区全服模式下的分布式解决方案
大纲 全区全服架构基础 全民飞机大战PK系统的分布式设计方案 全区全服架构 全区全服架构是通过一组相同的游戏逻辑进程提供对外服务.客户端通过负载均衡策略如TGW接入后台 任一游戏逻辑进程, 对于玩家而 ...
- 神无月服务器今日维修,2.12神无月全区全服服务器(除了已更新的服务器)更新公告...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2.12神无月全区全服服务器(除了已更新的服务器)将于2.12日00:15进行版本更新.更新内容如下 [新角色] 新角色将于2月15日10点正式亮相,目前 ...
- yy部分地区服务器升级维护,3月5日全区全服更新公告 - YY大皇帝 YY大皇帝独家官网 YY大皇帝新手卡...
亲爱的各位玩家: 羊年开工第一周,我们又继续回来为大家带来最新的游戏内容啦!在3月5日0点,我们将会对全区全服进行一次更新维护,希望各位玩家能喜欢我们奉上的新内容,也衷心希望大家继续给<大皇帝& ...
- 龙之谷服务器仓库在哪个位置,全区全服版本更新至Ver.190
各位亲爱的玩家: <龙之谷>全区全服已维护完毕,版本更新至 Ver.190.由于 华东电信四区 和 南方电信一区 已提前更新至Ver.190,故这两个大区仅为例行维护.也已维护完毕.请玩 ...
- 龙之谷服务器更新文件,全区全服 维护结束 更新至Ver.417
本帖最后由 一尾双鱼 于 20-5-22 17:50 编辑 各位亲爱的谷迷: <龙之谷>于 2020/05/21 早上07:00 开始对 全区全服 进行 更新至Ver.417. 目前服务器 ...
最新文章
- 【译】在ASP.Net和IIS中删除不必要的HTTP响应头
- java 数据类型model_如何在角度2中使用类数据类型的ngModel?
- 如何实现从wgs-84到beijing54的坐标转换
- ToString格式化
- 一款jQuery立体感动态下拉导航菜单特效
- 服务端高并发分布式架构演进之路(转载,图画的好)
- 获奖名单出炉,快来看看有没有你!
- 如何通过js调用接口
- 使用nginx负载均衡的webservice wsdl访问不到_Nginx 反向代理、负载均衡图文教程,写得太好了!...
- 阿里出品的最新版 Java 开发手册,嵩山版,扫地僧
- c语言 电阻器的分类,电阻器的详细介绍与分类以及其应用
- 有关单片机驱动IR2104遇到的问题及解决方法
- CT图像重建中的伪影
- 定时任务task:annotation-driven配置
- Docker安装Tomcat,安装elasticsearch+kibana
- 教程篇(7.0) 05. FortiGate基础架构 IPsec安全隧道 ❀ Fortinet 网络安全专家 NSE 4
- STM32CubeIDE使用总结(三)——debug调试程序
- java怎么做3d可视化图形
- 程序猿成长之路之密码学篇-DES介绍
- 八键电话号码的字母组合
热门文章
- 2022口碑最好的无线蓝牙耳机推荐,适合学生党购买的蓝牙耳机品牌
- Python获取股票数据及其可视化--基于tushare库
- Python —— 魔方方法
- 在CSS中实现height:100%-200px; width:100%-200px,既长度或宽度百分百减去200px
- 客户旅程_从编码训练营到报价—我的1280小时旅程
- 【论文阅读】深度学习去雾1——论文精选
- ConcurrentHashMap(jdk1.8)讲解及常见面试题
- sx1268 中文_SX1268原理图_SX1268芯片datasheet_SX1268数据手册_SX1268无线收发器模块_SX1268用户手册_一牛网...
- 深入了解,学习线索二叉树
- [19]python uniform() 函数