近年GDC服务器分享合集(四): 《火箭联盟》:为免费游玩而进行的扩展

保姆级教程:从WOS下载文献到Citespace出图,手把手搞定科研可视化(附避坑指南) 本文提供从WOS下载文献到Citespace出图的完整科研可视化指南,涵盖数据采集、清洗、环境配置和可视化优化全流程。特别分享WOS检索技巧、数据清洗方法和Citespace参数设置,帮助科研新手高效生成专业图谱,避开常见技术陷阱。 阅读详情

如今,网络游戏采用免费游玩(Free to Play)加内购的比例要远大于买断制,这是因为前者能带来更低的用户门槛。甚至有游戏为了获取更多的用户,选择把原来的买断制改为免费游玩,一个典型的例子就是最近的网易的永劫无间改免费。不过修改付费模式后,可能带来用户量的大幅增长,这就对原来的服务端架构有了更高的要求。

在GDC 2021上,来自《火箭联盟》项目的工程师就为我们分享了类似的经验——《《火箭联盟》:为免费游玩而进行的扩展》(Rocket League: Scaling for Free to Play)。他讲述了如何优化架构,以支撑改版后用户量多达5倍的增长。
在这里插入图片描述

《火箭联盟》是一款由美国独立游戏工作室Psyonix开发的赛车竞速游戏,获得过TGA年度最佳体育游戏大奖,在国内也有腾讯代理。为了拓展更多的用户,它在2020年夏天转为免费游戏。

分享主要包括几方面:一是为改版做的准备和压力测试,二是对架构的扩展和改进,三是从改版中获得的经验。

改版准备

项目组估计,改版后新玩家数量是改版前常规release发布时的3-5倍。因此压力测试以5倍上限作为目标。

同时项目组向Google和Redis Labs需求技术支持,花费在这上面的代价肯定小于机器宕机的代价。

在这里插入图片描述

压力测试选用的框架是Locust。这是一个用Python写的开源压力测试工具,它是分布式和可伸缩的,可以支持成千上万用户,而且提供基于Web的UI查看测试结果。
在这里插入图片描述

测试结果的评估包括几个方面:HTTP返回码、服务日志及资源利用率。根据测试结果,对代码做了相应的调整和改进。

在这里插入图片描述

架构扩展

首先是核心服务迁移到Kubernetes。从原来的Google App Engine(GAE)迁移到Google Kubernetes Engine(GKE)。前者只有容器功能,而后者提供了完整的服务编排和集群功能。

在这里插入图片描述

其次是匹配服务的改造。原有的匹配服务是一个单线程的.NET应用,性能较差。新版匹配服务改用了性能更好的OpenMatch。OpenMatch是一个谷歌发布的开源游戏匹配框架,依托于容器和Kubernetes来运行;它的匹配算法基于MapReduce,可扩展性强。

在这里插入图片描述

再次是Redis企业版移植。Redis企业版的全自动重分片(Re-sharding)功能是他们特别需要的特性,尽管它会带来一些性能开销。另外,Redis企业版提供了更好的命令可视化,以及完善的监视图表。

在这里插入图片描述

然后是MySQL改进。原来的架构只支持MySQL垂直扩展,面对改版后更高的并发压力,单机承载面临瓶颈,又没有时间迁移到水平扩展的架构,因此选择使用ProxySQL。ProxySQL是一种MySQL代理中间件,选择它主要是看中了动态查询路由、故障切换等功能以及扩展能力强的特点,尽管使用它会带来一定的学习曲线。

在这里插入图片描述

最后是流量限制(Rate Limit)。使用了登录队列来控制流量,这也是许多游戏的通常做法。后续还进一步对除了登录外的其他服务进行流量控制。

在这里插入图片描述

经验总结

上线之后的巅峰在线人数多于改版前的5倍,但是少于压力测试的最高值,因此还在允许的承载范围内,原先的5倍预估还算比较准确。在线人数稳定后也仍然维持在3倍的高位,更多的在线对服务器带来了更大的承载压力,因此后续版本迭代也在进行持续的压力测试。

在这里插入图片描述

经过这次改版,收获了以下经验:

  1. 早早开始规划。不要羞于寻求外界帮助,但也不要过度规划。
  2. 要做好压力测试很难,但是非常重要。
  3. 有序安排好重要的特性开发,依据中间的时间节点按时完成。
  4. 像流量限制一样实现多种功能的控制。

在这里插入图片描述

【WRF-Chem】预处理工具(Preprocessors)总结 预处理工具(Preprocessors)总结 阅读详情

相关推荐

基于vivado实现FFT/IFFT

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、实现的功能二、配置1.调用DDS的IP核2.调用FFT的IP核三、结果分析1.调用DDS的IP核2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、实现的功能 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任

qq_45600102的博客 1万+

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 347

Unity 第一人称视角控制移动、旋转

第一人称视角操作此功能主要是借鉴YouTube,写的蛮好我就搬运过来让大家也试试。

qq_36515472的博客 4202

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 427

模拟退火算法详细讲解(含实例python代码)

模拟退火算法详细讲解(含实例python代码)(一)模拟退火算法简介三级目录(二)模拟退火算法原理(1)基本思想(2)算法步骤(3)参数控制(三)实例分析 最近老师要求做模拟退火算法实验,看了很多博客之后感觉还是不太清楚,最后问了老师之后才搞明白。想把自己的理解写下来,帮助大家更好的理解。本篇文章是在另一篇博客的基础上加了一下自己的理解,然后又把我们在实验中的实例写下来,还有参考代码。希望大家看了之后能够加深对模拟退火算法的理解。 另一篇博客链接: 深度学习 — 模拟退火算法详解. (一)模拟退火算法简介

weixin_48241292的博客 17万+

百度新闻评论内容抓取

通过抓包分析发现,百家号手机app端文章评论内容接口为:https://ext.baidu.com/api/comment/v1/comment/getlist?appid=101&sid=1008524_2-1010050_1-1007549_23033-1007550_23035&cuid=01B5EAF73E8A83BB842BE04E4FB6C656|23200201047...

codingforhaifeng的博客 2422

LangGraph 本地 build 频频翻车,最终在服务器跑通流式对话

先说结论:我本地那个,一次都没成功过。三次,三次,全挂在拉镜像上。而顺得像刚上过油。这就很像我高中那辆自行车:骑着能走,一上锁就坏。那天晚上我盯着终端里那行红字看了很久,想的不是技术方案,想的是——为什么同一个工具,可以一边让我觉得自己很行,一边让我觉得自己不太行。

人工智能AI技术 115

教程 | VeriStand硬件在环仿真测试第一章

这篇是系列文章的第一章,满满的都是干货,感兴趣的话欢迎一起交流探讨。

HUASUITECH的博客 1万+

【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork

本文详解多进程TCP服务器的实现原理,从单进程并发瓶颈出发,通过fork分离连接接收与服务职责。重点解析文件描述符继承机制、僵尸进程问题及双重fork解决方案,最终构建高效、稳定的多进程服务器模型,并说明服务器重启时可能因端口未释放导致绑定失败的原因。

2402_87731470的博客 2395

JWT实战:5分钟搞定Spring Boot集成JWT认证(含完整代码示例)

本文详细介绍了如何在Spring Boot中快速集成JWT认证,提供完整的代码示例和配置指南。通过JWT实现无状态认证,解决分布式系统中的会话管理问题,提升系统扩展性和安全性。涵盖令牌生成、验证、Spring Security整合及生产级优化方案。

weixin_29327525的博客 456

AI Agent技能评测框架SkillsBench:从黑盒评估到白盒技能拆解

在人工智能领域,模型评估是衡量技术进展的核心环节。传统评测基准如GLUE、MMLU主要关注模型的通用认知能力,但实际工程应用中,AI Agent需要的是在复杂场景中协调多种能力的“职业技能”。SkillsBench创新性地将Agent能力进行原子化拆解,定义了理解规划、工具调用、推理决策、交互安全等技能维度,并通过领域专家构建的评测集确保生态效度。这一框架为Agent开发提供了精准的“度量衡”,使性能优化从经验驱动转向数据驱动,同时为不同模型和框架提供了公平比较的基础,推动了AI Agent生态从“野蛮生长

weixin_30530339的博客 389

自建 Git 服务器和裸仓库差在哪:要能提合并请求

在一台 Linux 上 git init --bare 就能自建 Git 服务器,但它只能推拉代码,没有网页、合并请求、评审和按仓库分配的权限。对照裸仓库和 AngusGit 各自能做什么,再走一遍在 AngusGit 上发起合并请求的最短路径,以及已有裸仓库怎么完整搬过来。

AngusTester 322

Raspberry Pi Pico + Inmp441麦克风(Pio模拟I2s)<2>

摘要:本文介绍了在Raspberry Pi Pico上使用PIO(Programmable I/O)接收I2S数字麦克风音频数据并保存为WAV文件的方法。项目采用双PIO状态机设计,一个生成I2S时钟信号(WS+SCK),另一个接收24位左声道数据并转换为16位格式。文章详细说明了接线方式、参数设置、WAV文件头构造、PIO汇编程序实现以及数据转换处理流程。项目在MicroPython环境下实现16kHz采样率、6秒时长录音,具有时序精确、稳定可靠的特性,并提供了进一步拓展的可能性,如双声道支持、实时频谱分

技术需要沉淀,需要碰撞。 660

架设一台NFS服务器

3、将/home/tom目录仅共享给192.168.100.136这台主机,并只有用户tom可以完全访问该目录。注意:tom是一个用户目录,并且在客户端创建tom用户一定与服务端的tom用户的uid/gid保持一致。2、开放/nfs/upload目录,为192.168.100.0/24网段主机可以上传目录,并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210。1、开放/nfs/shared目录,供所有用户查询资料。架设一台NFS服务器,并按照以下要求配置。

2401_87595340的博客 238

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

轻量点对点定时备份方案:个人文档与服务器文件跨机同步实践

本文探讨了轻量级文件备份场景下的实际需求与解决方案。针对个人文档及小型服务器备份,传统BAT脚本虽易上手,但存在断点续传差、安全缺失、维护困难等短板。作者提出理想方案应具备点对点传输、断点续传、加密传输、版本管理、文件过滤及自动清理等能力。最终选用松鼠备份工具,实现稳定、低运维成本的跨机同步,尤其适合中小型场景,强调“稳定省心”优于复杂功能,是小团队和个人运维的高效之选。

2501_93776716的博客 208

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

安徽京准:NTP网络校时服务器在化工厂网络部署要点

安徽京准:NTP网络校时服务器在化工厂网络部署要点

238

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux epoll 一篇讲透:从 select/poll 到红黑树、LT/ET,再到完整 TCP 服务器

一万个客户端已经连上服务器,眼下只有十个客户端发来了数据。服务器怎样把时间花在这十个连接上?理解这个问题,就抓住了 epoll 的主线。接下来,我们沿着“为什么需要它 → 接口怎么用 → 内核如何实现 → LT/ET 怎么写 → 完整服务器怎么运行”的顺序,把知识连起来。**阅读基础:**了解socketbindlistenaccept的基本用途即可。本文示例面向 Linux,服务器使用 C++17,实验脚本使用 Python 3。

2601_94861874的博客 195

把电脑变成一台“假“GNSS 设备 —— 一个蓝牙 SPP 服务器从零到联调

本文介绍如何用Qt6实现一个蓝牙SPP服务器(H11BtServer),将电脑模拟为一台可被发现的GNSS设备。该服务器支持经典蓝牙SPP协议,注册SDP服务并监听连接,响应AT命令(如AT+DEVINFO),每秒主动推送带正确校验和的NMEA帧($GNPOS/$GGA等),数据基于时间驱动正弦与随机扰动,实现位置、精度等参数动态变化。通过解析行式协议、计算校验和、严格对齐字段顺序,可在无真实硬件情况下联调RTK客户端(如rtklib SDK或手机App),完整验证数据链路。代码结构清晰,参数集中配置,易于

Hi20240217的博客 137

Linux网络编程:彻底理解IO多路复用select!从fd_set位图、读写就绪到手写TCP多客户端字典服务器

在前面的Linux网络编程中,我们已经学习了五种经典I/O模型:其中,我们通过 配合: 将文件描述符设置为非阻塞模式。例如: 这样,在没有数据可读时: 可以立即返回: 并设置: 而不需要让当前线程一直阻塞等待。但是,这又引出了一个新的问题。假设我们的TCP服务器同时连接了100个客户端: 如果使用简单的非阻塞轮询: 服务器就需要不断检查这些Socket。即使其中99个客户端都没有发送任何数据,服务器仍然可能反复调用它们对应的 。显然,这种方式可能产生大量无意义的系统调用。我们真正希望实现的是:能不能让内核

Face_FeaR的博客 657

【服务器数据恢复】RAID5阵列双盘掉线Oracle+OA系统的数据恢复案例

某医药公司服务器组建RAID5磁盘阵列,阵列内两块硬盘先后离线,直接造成服务器宕机。服务器操作系统为RedhatLinux,承载基于Oracle数据库搭建的OA业务系统,业务数据价值高、恢复时效要求紧急。由于该OA配套Oracle版本早已停止技术支持,客户需求为:完整恢复业务数据,同时尽可能复原原有操作系统环境。

beiya123的博客 127

BarTender异地客户端怎么连服务器?

适配场景:制药、汽车等,对网络环境、合规规范存在较高要求的企业。处在外部网络的异地计算机,如果要和总部服务端交换数据,就要建立加密通信隧道,VPN、云组网都属于这类网络实现方式。经常收到这样的技术咨询:标签软件的服务端部署在总部,外地车间、异地仓库、外协工厂的计算机分属不同局域网,这类情况下是否可以实现互通?这套软件本身不支持公网直接访问总部服务端,需要构建安全的虚拟通信链路,将分散各处的计算机纳入同一个虚拟内网环境。异地分厂、仓库以及外协作业点位,设备不必回到总部内网,就可以运行标签相关软件。

2601_96728078的博客 422

银河麒麟高级服务器操作系统日志采集标准处理流程

本文档提供银河麒麟高级服务器操作系统标准化日志采集流程,便于统一技术支持标准、缩短问题定位周期,且确保采集的信息完整、准确、可直接用于根因分析。本文档适用于技术支持工程师及具备操作系统操作权限的技术人员,覆盖银河麒麟高级服务器操作系统,适用阶段为服务器故障排查、问题复现、根因分析阶段的日志采集工作。执行1次,快速定位负载类型# 系统整体负载与CPU占用# 内存与虚拟内存状态# 进程维度信息(按CPU/内存排序)# 异常进程排查。

qq_39496637的博客 312

IO模型与并发服务器

调用 IO 函数(recv)时,如果内核缓冲区没有数据,进程直接阻塞休眠,直到数据到达才唤醒、拷贝数据、函数返回。

miracleAshing的博客 190

在 Linux 服务器上用 Docker 从零部署 Nexent:从环境准备到首次登录验证

本文解决:拿到一台干净的 Linux 云服务器,如何用 Docker 把开源智能体平台 Nexent 完整部署起来,并确认它真的能用——包括容器状态检查、浏览器访问、超级管理员首次登录、租户初始化以及进入主工作区。全文命令均基于 Nexent 官方 AtomGit 仓库()当前版本实测整理,照着做即可,不依赖任何图形界面。文中也会把我实际踩中的两个高概率坑()连同排查过程一起写清楚。

2302_79376097的博客 2180

服务器和windows客户端重启后,发现agent连不上lightmem和hive mcp了

服务器重启后,lightmem无法连接PostgreSQL(192.168.0.88:18444),日志显示connectECONNREFUSED。排查发现PG服务正常、jail运行中、bridge0成员齐全,但netstat -Iepair10a -b显示收包为0、错误计数持续增长,且arp无响应。最终定位为FreeBSD vnet jail的epair虚拟网卡在重启后“二次入狱”,导致跨vnet转发失效。修复方法:销毁并重建epair对,确保ifconfig epairXa up。同时发现lightme

skywalk8163的专栏 683

使用OpenCode管理服务器和网站优化实操分享_opencode ai coding agent open source terminal 是什么

文章浏览阅读137次。本文介绍如何利用OpenCode这一开源AI编程智能体,在Debian服务器上实现自动化运维(如安装1Panel、Halo、MySQL)和免密登录配置,并通过WorkBuddy结合OpenCode完成SEO/GEO评估与分优先级优化执行。强调其模型中立、隐私优先特性及CLI/桌面/Web多端支持能力。

ocean1010的专栏 142
上一篇: 一文弄懂游戏服务器的云原生化
长三月
博客等级 码龄9年 228粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值