排行方式

通常有2类排行:

  • 全服所有人排名
  • 前N名排名

考虑到大量用户的情况下,实时全服排名难度很大,一般可以做成离线排名的方式。

这里考察的是大量用户的情况下,前N名的实时排名方法。

背景假设

这里假设,有500万玩家同时在线

那么极端情况下,每秒500万玩家可能同时改变战力值

初步设计

  1. 启动时,加载最新前N名排名数据。
  2. 变化的战力输入到排序服务,通过排序器,更新排名。并最终保存到数据库。
  3. 排名服务内置 战力数据缓冲器。每秒500万次排序,不一定能够完成。因此需要做缓冲。且缓冲规模最大在500w数据。
  4. 大多数情况下的战力变化,实际上只做了一次比较。这点很重要。

以上基本可以做到接近实时的排名。

但是,还存在问题。一般的服务器网络模块每秒接收数据次数在10万级别。

因此上述单个排名服务是无法胜任上述背景假设的。

再次设计

Go游戏服务器开发的一些思考(三十):排行榜服务器设计思路相关推荐

  1. Go游戏服务器开发的一些思考(十):goroutine和coroutine

    概要 go语言的特色之一就是goroutine.也就是go协程.由于协程这个东西在go语言之前,用到相对比较少,大家对协程的理解程度不一,或有偏差.比如本人刚接触goroutine时,就对其比较畏惧, ...

  2. Android开发笔记(一百三十六)可折叠工具栏布局CollapsingToolbarLayout

    可折叠工具栏布局CollapsingToolbarLayout 上一篇博文< Android开发笔记(一百三十五)应用栏布局AppBarLayout>阐述了如何把Toolbar往上滚动,那 ...

  3. Android开发笔记(一百三十五)应用栏布局AppBarLayout

    应用栏布局AppBarLayout Android5.0推出工具栏Toolbar用来替代ActionBar,灵活性和易用性大大增强,有关Toolbar的详细介绍参见< Android开发笔记(一 ...

  4. Go游戏服务器开发的一些思考(一):语言层面

    Go是比C++更好用的高级语言 使用Go作为服务器开发的主语言前,首先需要对Go语言做下定性.在接触Go前,可能给人的印象(至少是我),Go是一门脚本语言.看了 官方文档 ,才知道Go是一门高级语言. ...

  5. 游戏系统开发笔记(六)——服务端架构设计

    . http://blog.csdn.net/mooke/article/details/8913051 上回写了写服务端的分层结构,分层是比较宏观上的东西,至于层次间具体的交互方式还得通过各个模块的 ...

  6. 王者显示重连服务器失败,最强王者三国手游服务器连接失败 最强王者三国手游曹操学什么技能...

    最强王者三国手游服务器连接失败 在王者荣耀这次的更新中为了适应版本的不断更替,这次大幅度调整了装备的一些属性和价格.那么具体都有哪些装备改动了呢?下面小编就跟大家详细介绍一下,不清楚的玩家一起来看看吧 ...

  7. 七日杀16.1 服务器修改器,七日杀三十二项32位修改器_七日杀 a16.1b1多功能三十二项修改器-66街机网...

    资源说明: 七日杀 a16.1b1多功能三十二项修改器32位[潇潇蓝龙],由"潇潇蓝龙"制作,一款全功能修改器,基本上是全能力开关,支持任意调整生物伤害.方块距离.生物距离.体力消 ...

  8. Android开发笔记(一百三十)截图和录屏

    屏幕捕捉 Android5.0之后开放了屏幕捕捉的API,因此开发者便可以直接通过代码进行截图与录屏,而无需操作系统底层了.屏幕捕捉的功能由MediaProjectionManager媒体投影管理器实 ...

  9. Go游戏服务器开发的一些思考(九):Docker桥接网络及固定IP (二)

    桥接网络的问题 在使用docker交接网络时,有不少问题.主要问题如下: IP不固定 或者 是固定IP在重启后失效 把Docker容器直接暴露到在该网段上了 Docker Overlay 网络模型 最 ...

最新文章

  1. 用python绘制漂亮的图形-用Python画一些漂亮图形--Quora代码赏析
  2. php pdo.dll不存在,php pdo.dll没有找到怎么办
  3. 离线部署 CDH 6.2 及使用 CDH 部署 Hadoop3 大数据平台集群服务
  4. 重拾Javascript(四) 运动 图片的淡入淡出
  5. 【干货分享】通用工具类
  6. java中interger享元模式_Integer中的享元模式
  7. vue项目接入高拍仪
  8. 江宁地区吃喝玩乐全攻略!
  9. 多模态深度学习综述:网络结构设计和模态融合方法汇总
  10. mysql使用条件限制乐观锁_mysql乐观锁解决并发问题
  11. 如何快速有效的从零开始学习3d建模?
  12. rpm卸载mysql不依靠依赖_centos彻底卸载mysql(不保留数据)
  13. Android NFC开发详解 总结和NFC读卡实例解析
  14. NDK开发(四):仿QQ变声
  15. LDAP添加 memberOf 模块
  16. pgsql将为NULL或空字符串的字段替换为指定默认值,格式化时间戳,用指定分隔符截取字符串等操作
  17. 用友U8案例教程采购管理后台配置
  18. 一加手机怎么导出照片_换手机照片、通讯录备份太麻烦,一加手机轻松解决
  19. 达梦数据库导入数据的几种方法
  20. 前端开发如何做新手引导

热门文章

  1. 什么是反射?有什么作用?
  2. C getopt.h
  3. 工商管理如何利用计算机思维,论述工商管理人才素质的重要性
  4. Windows 更新:服务堆栈更新
  5. GameObject在SetActive(false)隐藏后,其下脚本仍会运行
  6. 我发的文章变成了0和1,那0和1是怎么发送给你的?计算机网络(二)物理层
  7. bootstrapTable参数及事件详解
  8. 【华为云技术分享】物联网SIM卡和SIM卡,真的不是一回事
  9. hackthebox_Archetype
  10. (27)STM32——光敏传感器实验笔记