強擴展、強一致、高可用…GaussDB成為游戲行業的心頭愛

来源:https://www.cnblogs.com/huaweiyun/archive/2022/09/09/16672893.html
-Advertisement-
Play Games

摘要:看GaussDB for Redis強擴展、高可用、強一致、高安全,如何玩轉各大游戲場景 本文分享自華為雲社區《GaussDB為什麼成為游戲行業的心頭愛?》,作者: GaussDB 資料庫 。 在結束忙碌工作回家的地鐵上,難得閑暇的周末下午,和朋友再來一局的入睡前......游戲已經成為了當下 ...


摘要:看GaussDB for Redis強擴展、高可用、強一致、高安全,如何玩轉各大游戲場景

本文分享自華為雲社區《GaussDB為什麼成為游戲行業的心頭愛?》,作者: GaussDB 資料庫 。

在結束忙碌工作回家的地鐵上,難得閑暇的周末下午,和朋友再來一局的入睡前......游戲已經成為了當下大多數年輕人在緊張的工作之餘最普遍的放鬆方式和社交手段之一。而游戲廠商想要增加用戶粘性,不僅需要在游戲類別、情節故事、關卡設計上洞察用戶喜好,讓游戲足夠新穎,更要在流暢程度上帶給用戶更極致的體驗。游戲場景複雜多樣,應用版本更新迭代,企業的運營成本也水漲船高,這讓各大廠商在游戲開發過程中都極度重視一個同樣的問題——如何選擇一款可靠的資料庫來支撐龐大的系統穩定運行?

每一款游戲都要經歷開發、上線、運維等多個環節,在這過程中,資料庫面臨的應用場景非常豐富。不同的應用場景對資料庫的要求也不盡相同,比如跨服對戰對計算算力的要求,線上聊天產生的數據對存儲空間的要求,排行榜實時刷新對數據可用性的要求......這些具體的游戲場景都要求資料庫在存儲空間、彈性擴容、數據強一致保障以及成本等各方面都交出滿意的答卷。

在《迷你世界》、《餘燼風暴》等大型游戲的開發和上線過程中,這些廠商都不約而同地將GaussDB for Redis資料庫作為首選。為什麼GaussDB for Redis成為了游戲行業的心頭愛呢?我們不妨先看看在游戲行業,他們都面臨著哪些共同的痛點,GaussDB for Redis有什麼錦囊妙計。

強擴展——支持業務高峰期海量玩家線上對戰暢聊

在一款游戲新開服、活動推廣、重大版本上線或發放點券游戲幣等時間段,玩家訪問量突增,同時線上人數迅速飈高,這種情況下,往往需要提前增加節點擴算力,高峰期後再縮減節點,如果處理不好,極有可能在擴容時發生長時間業務阻塞,甚至出現游戲伺服器故障而被迫停服,面臨痛失大量游戲玩家的風險。

比如《迷你世界》春節期間線上玩家數從平時的百萬級別突增到千萬級,玩家協同創作與聯機游玩產生大量實時聊天數據,需要存儲空間線上快速擴容。而之前使用的開源Redis基於存算一體架構,存儲擴容需要十幾分鐘,擴容期間大量玩家在協同創作、實時聊天時出現語音消息發不出、圖片傳輸失敗等問題,持續時間長達十幾分鐘,極大影響了玩家的游戲體驗,極易造成用戶流失。

龍圖游戲的大型魔幻手游《餘燼風暴》採用的是多人跨服對戰的游戲模式,在大量玩家跨服戰鬥的業務高峰期,資料庫不僅需要穩定支撐10萬級高併發業務,還對算力有一定的要求,需要計算節點達到秒級擴容,才能輕鬆應對海量用戶跨服對戰的流量洪峰。

針對這些場景,GaussDB for Redis基於業界首創的存算分離架構,做到了存儲空間的彈性伸縮和秒級擴容,擴容只需修改配額,最高可支持單實例TB級數據1秒擴容8倍,即從1TB擴容到8TB,能滿足所有海量游戲聊天數據的線上擴容場景,助力千萬級玩家暢聊不卡頓,極大提升玩家交流體驗。計算節點做到分鐘級擴容,擴容僅需修改數據映射,無需搬遷數據,在業務上僅有秒級的時延抖動,支撐《餘燼風暴》業務高峰期單日同時線上玩家數達到百萬級,且玩家數據訪問幾乎不受影響。

強一致——保障多個地圖數據實時一致性

沙盒游戲是近幾年的熱門游戲題材之一,這類游戲常見的玩法有兩種,一種是普通玩家可以進入多個地圖聯機游玩,通過“方塊”的自由組合,搭建各種場景地圖;另一種是高階玩家與各地玩家聯機,跨區域協同創作地圖,形成全新的小游戲。

相信不少玩家都遇到過這樣的問題:在游戲地圖A購買完道具,立即切換到別的地圖以後,打開背包發現道具竟丟失了;遇到美女玩家,關註對方後本應自動發送招呼語,對方卻遲遲沒有收到。

其實主要原因是兩個地圖從不同的節點讀取數據,由於主節點的數據沒有及時同步至從節點,更新存在一定的延遲性,最終導致多個地圖之間的數據不一致。這說明一個問題,無論什麼條件下,游戲地圖數據必須要實時保持一致,這樣才能為玩家帶來良好的用戶體驗。

面對這種數據不一致的問題,GaussDB for Redis是怎麼做的呢?首先不需要主從分離,在存儲用戶數據時,存儲層使用3副本保存地圖數據,基於一致性共識演算法率先保證所有副本數據的一致性,避免了原有主從結構資料庫在主資料庫宕機後,從資料庫中的地圖數據跟主資料庫中不完全一致的問題。玩家不論是在多個地圖之間游玩,還是聯機協同創作地圖,都能實時保障數據的一致性,在游戲的體驗感上得到極大的提升。

數據高可用——支持游戲排行榜數據實時刷新

在一款游戲熱度逐漸高漲或新游戲上線時,玩家往往對游戲排行榜的參與感會非常強烈,排行榜的刷新對數據實時性的要求更強。因為排行榜的變化,數據變動非常頻繁,需要高可用的資料庫保證積分數據的穩定讀取和實時刷新。

為了保證數據穩定讀取,解決資料庫高可用問題,基於存算分離架構的GaussDB for Redis將玩家積分數據統一存儲在存儲池中,而不是存儲在計算節點中,這樣做的好處是,如果某一個計算節點發生故障後,業務將自動將該節點的業務切換到其它計算節點,如下圖所示:

只要集群中的任一節點存活,就可訪問全量數據(友商採用的存算一體主從架構,單節點掛掉後,上面存儲的積分數據將無法讀取),避免了因為節點故障導致排行榜無法實時刷新的情況。

高安全——跨地域雙活完整災備輕鬆應對游戲故障

游戲場景是典型的互聯網場景,用戶的數據日誌非常之多,一旦發生資料庫宕機、機房斷電、網路故障等情況造成數據丟失,玩家的游戲體驗將大打折扣。當一個可用區或整個地域意外宕機,需要有其它的可用區和補救措施來及時修複數據,這對系統的安全保障能力和容災能力都提出很高的要求。

GaussDB for Redis支持跨地域雙活容災,即在兩個實例之間建立數據同步鏈路,其中主實例支持讀寫,備實例只讀。如下圖所示:

與開源Redis那種簡單的命令轉發不同,GaussDB for Redis的雙活方案是基於WAL日誌的數據同步,原理上更類似於MySQL資料庫。在雙活架構中,RsyncServer進程負責數據的全量和增量同步,數據同步鏈路採用華為雲內部高速網路,同Region內僅毫秒級延遲。

GaussDB已經在游戲行業沉澱出了非常豐富、成功的經驗。在《迷你世界》國產沙盒創意平臺中,GaussDB for Redis支撐了多區域TB級別的地圖數據同步更新,助力億級用戶跨區域協同創作,在整體成本相比開源Redis降低60%的同時,存儲用戶畫像總量提升了3倍,保障了千萬級玩家實時聊天數據毫秒級別訪問。龍圖游戲選擇了GaussDB for Redis作為大型魔幻手游《餘燼風暴》的核心底座,不僅開服首日流水就破千萬,且在業務高峰期單日同時線上玩家數達到百萬級,收穫了眾多玩家的喜愛。

游戲場景只是互聯網行業中的其中一種通用型場景,這些核心技術和實踐經驗也只是GaussDB資料庫多年來發展成果的冰山一角。GaussDB在技術上的創新和突破從未止步,在千行百業中的探索也一直在路上。

 

點擊關註,第一時間瞭解華為雲新鮮技術~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 要說捲,每分鐘轉xx圈,誰還能有它“捲”?! 要說捲, “承包”工業能耗30%, 雙碳壓力下,誰能有它非捲不可的壓力?! 要說捲,工業、汽車、航天、醫療……生活中處處有它的身影,更擔當決定性的角色,能不捲? 作為近代人類文明發展的重要推動力,電機在如今的社會中幾乎無處不在,為現代生活的大量基礎應用提 ...
  • 一、下載安裝包 archlinux-x86_64.iso 下載傳送門:Arch Linux BitTorrent Download 是磁鏈和種子下載,往下拉,找到 HTTP Direct Downloads , 選擇 China ,選擇適合自己的國內鏡像進行下載 Vmware 下載傳傳送門:VMwa ...
  • 1.俄羅斯延長接受簡化版認證流程的日期 2022年8月31日,俄羅斯聯邦政府發佈了第1255號法令,主題為“關於第353號法令附錄18的修正”,主要內容是俄羅斯延長接受“簡化版認證流程”的日期,從2022年9月1日延長至2023年9月1日為止。該法令發佈後立即生效。 “簡化版認證流程”的相關細則可以 ...
  • 1.視圖:view 視圖就是一張虛擬的表。表是真正存數據的,視圖只是顯示查詢結果。 視圖的作用:隱藏表的結構、簡化sql嵌套查詢操作 註意:視圖就是你要查詢數據的一個中間結果集,我們一般只用來做數據查詢的 創建視圖:create view view_name as 查詢語句 例如: mysql> c ...
  • 2022-09-09 1、左連接查詢(left join) 查詢條件的一種,以左表為主根據條件查詢右表數據,如果根據條件查詢右表數據不存在null值填充。 以“students表(id,name,age,gender,is_del,height,c_id,id,name)” "classes表(id ...
  • 不說那種建表的時候 設置好主鍵格式 的 解決方案. 事後諸葛啊. 誰都會不靠譜方案1 改主鍵表結構. 費時! 主鍵已經超長了.說明 數據量相當大. 改表結構的時間成本你能等得起嗎方案2 超長表 改表名作為歷史表 ,新建新表,然後根據業務情況將歷史表數據酌情複製到新表中. (比如最近3個月的數據. 不 ...
  • 摘要:《Index Checkpoints for Instant Recovery in In-Memory Database Systems》是由華為雲資料庫創新Lab一作發表在資料庫領域頂級會議VLDB'2022的學術論文。 本文分享自華為雲社區《VLDB'22 HiEngine極致RTO論文 ...
  • 編者按: Benchmarking 作為一個衡量標尺,可從不同的維度來客觀公正公平的評價相關產品,例如:對應數據測評而言,有 TPC-C、TPC-H,TP-DS 等等。現有的這些測評 TPC-X 標準(Benchmarking)真的適合現有的 OLTP&OLAP 混合型資料庫嗎?現在對於很多 HTA ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...