Go游戏服务器开发的一些思考(三十):排行榜服务器设计思路
排行方式
通常有2类排行:
- 全服所有人排名
- 前N名排名
考虑到大量用户的情况下,实时全服排名难度很大,一般可以做成离线排名的方式。
这里考察的是大量用户的情况下,前N名的实时排名方法。
背景假设
这里假设,有500万玩家同时在线
那么极端情况下,每秒500万玩家可能同时改变战力值
初步设计
- 启动时,加载最新前N名排名数据。
- 变化的战力输入到排序服务,通过排序器,更新排名。并最终保存到数据库。
- 排名服务内置 战力数据缓冲器。每秒500万次排序,不一定能够完成。因此需要做缓冲。且缓冲规模最大在500w数据。
- 大多数情况下的战力变化,实际上只做了一次比较。这点很重要。
以上基本可以做到接近实时的排名。
但是,还存在问题。一般的服务器网络模块每秒接收数据次数在10万级别。
因此上述单个排名服务是无法胜任上述背景假设的。
再次设计
Go游戏服务器开发的一些思考(三十):排行榜服务器设计思路相关推荐
- Go游戏服务器开发的一些思考(十):goroutine和coroutine
概要 go语言的特色之一就是goroutine.也就是go协程.由于协程这个东西在go语言之前,用到相对比较少,大家对协程的理解程度不一,或有偏差.比如本人刚接触goroutine时,就对其比较畏惧, ...
- Android开发笔记(一百三十六)可折叠工具栏布局CollapsingToolbarLayout
可折叠工具栏布局CollapsingToolbarLayout 上一篇博文< Android开发笔记(一百三十五)应用栏布局AppBarLayout>阐述了如何把Toolbar往上滚动,那 ...
- Android开发笔记(一百三十五)应用栏布局AppBarLayout
应用栏布局AppBarLayout Android5.0推出工具栏Toolbar用来替代ActionBar,灵活性和易用性大大增强,有关Toolbar的详细介绍参见< Android开发笔记(一 ...
- Go游戏服务器开发的一些思考(一):语言层面
Go是比C++更好用的高级语言 使用Go作为服务器开发的主语言前,首先需要对Go语言做下定性.在接触Go前,可能给人的印象(至少是我),Go是一门脚本语言.看了 官方文档 ,才知道Go是一门高级语言. ...
- 游戏系统开发笔记(六)——服务端架构设计
. http://blog.csdn.net/mooke/article/details/8913051 上回写了写服务端的分层结构,分层是比较宏观上的东西,至于层次间具体的交互方式还得通过各个模块的 ...
- 王者显示重连服务器失败,最强王者三国手游服务器连接失败 最强王者三国手游曹操学什么技能...
最强王者三国手游服务器连接失败 在王者荣耀这次的更新中为了适应版本的不断更替,这次大幅度调整了装备的一些属性和价格.那么具体都有哪些装备改动了呢?下面小编就跟大家详细介绍一下,不清楚的玩家一起来看看吧 ...
- 七日杀16.1 服务器修改器,七日杀三十二项32位修改器_七日杀 a16.1b1多功能三十二项修改器-66街机网...
资源说明: 七日杀 a16.1b1多功能三十二项修改器32位[潇潇蓝龙],由"潇潇蓝龙"制作,一款全功能修改器,基本上是全能力开关,支持任意调整生物伤害.方块距离.生物距离.体力消 ...
- Android开发笔记(一百三十)截图和录屏
屏幕捕捉 Android5.0之后开放了屏幕捕捉的API,因此开发者便可以直接通过代码进行截图与录屏,而无需操作系统底层了.屏幕捕捉的功能由MediaProjectionManager媒体投影管理器实 ...
- Go游戏服务器开发的一些思考(九):Docker桥接网络及固定IP (二)
桥接网络的问题 在使用docker交接网络时,有不少问题.主要问题如下: IP不固定 或者 是固定IP在重启后失效 把Docker容器直接暴露到在该网段上了 Docker Overlay 网络模型 最 ...
最新文章
- 用python绘制漂亮的图形-用Python画一些漂亮图形--Quora代码赏析
- php pdo.dll不存在,php pdo.dll没有找到怎么办
- 离线部署 CDH 6.2 及使用 CDH 部署 Hadoop3 大数据平台集群服务
- 重拾Javascript(四) 运动 图片的淡入淡出
- 【干货分享】通用工具类
- java中interger享元模式_Integer中的享元模式
- vue项目接入高拍仪
- 江宁地区吃喝玩乐全攻略!
- 多模态深度学习综述:网络结构设计和模态融合方法汇总
- mysql使用条件限制乐观锁_mysql乐观锁解决并发问题
- 如何快速有效的从零开始学习3d建模?
- rpm卸载mysql不依靠依赖_centos彻底卸载mysql(不保留数据)
- Android NFC开发详解 总结和NFC读卡实例解析
- NDK开发(四):仿QQ变声
- LDAP添加 memberOf 模块
- pgsql将为NULL或空字符串的字段替换为指定默认值,格式化时间戳,用指定分隔符截取字符串等操作
- 用友U8案例教程采购管理后台配置
- 一加手机怎么导出照片_换手机照片、通讯录备份太麻烦,一加手机轻松解决
- 达梦数据库导入数据的几种方法
- 前端开发如何做新手引导