sponsored links

每秒百萬次訪問,每天10TB資料,AR遊戲《精靈寶可夢Go》的背後

據Statista統計資料,截止今年1月,風靡全球的LBS AR遊戲《精靈寶可夢Go》僅在iPhone端,日活使用者就有大約82.7萬人。而在一些活動期間,該作的同時線上人數甚至可達數百萬級,自上線以來持續吸引了大批忠實玩家。

每秒百萬次訪問,每天10TB資料,AR遊戲《精靈寶可夢Go》的背後

與吃雞等MMORPG遊戲不同,《精靈寶可夢Go》不僅需要解決同時多人線上的問題,還需要確保基於線下場景的實時AR內容能在多臺裝置上同步。考慮到該作在全球的大規模覆蓋率,大量的LBS AR資料為遊戲背後的技術帶來很大挑戰。那麼,《精靈寶可夢Go》的伺服器是如何同時承載數百萬使用者的呢?

據青亭網瞭解,《精靈寶可夢Go》基於谷歌雲服務,因此資料的處理、傳輸、渲染等流程在雲端平臺完成,保證穩定性的同時,也允許LBS AR應用場景足夠靈活。

近期,為了瞭解這款遊戲背後的技術,谷歌採訪到Niantic高階工程經理James Prompanya,在採訪中James為我們詳細講述了遊戲後臺是如何使用Google Cloud工具來支援大量使用者流量,包括管理和維護大規模使用者端所採用的系統架構,以及其背後發生的故事等等。

每秒百萬次訪問,每天10TB資料,AR遊戲《精靈寶可夢Go》的背後

Pormpanya表示:在“社群日”和“精靈寶可夢Go Fest 2021”等活動期間,遊戲的流量從40萬人/秒上升至近100萬人/秒。為了承載不斷增加的同時線上玩家,Niantic採用了GKE(谷歌容器引擎)、谷歌全球分散式資料託管服務/資料庫Cloud Spanner等技術,而且在線上獲得了谷歌工程師的技術支援。

注:GKE是谷歌旗下的一個Kubernetes管理平臺,主要在谷歌雲平臺上執行。而Kubernetes最初由谷歌工程師開發,後來在2014年開源,它是一種容器編排平臺,用於排程、自動部署、管理和擴充套件容器化應用。谷歌Spanner是一個分散式資料庫,專為遊戲狀態儲存而設計,可支撐全球規模的多人遊戲。

谷歌:請介紹一下《精靈寶可夢Go》?

James:這是一款鼓勵玩家去戶外活動的LBS AR遊戲,與傳統的手遊有很大區別,除了在遊戲中互動外,玩家還可以透過線下的社群活動來社交。在相同的地理位置,多名玩家可以一起抓同一個寶可夢,體驗共享的AR場景。

每秒百萬次訪問,每天10TB資料,AR遊戲《精靈寶可夢Go》的背後

Niantic會定期舉辦社群日、GO Fest、限時突襲等活動。通常,活動上線的區域會同時湧入大量玩家,訪問量從每秒40萬次上升至每秒100萬次。

谷歌:在GO Fest期間,遊戲開發團隊如何擴充套件後端規模,以處理流量高峰?

James:我們採用多種託管服務來處理增加的計算流量,主要包括GKE和谷歌Cloud Spanner。《精靈寶可夢Go》的前端服務託管在GKE上,GKE基於谷歌雲服務(Google Cloud),管理/擴充套件節點足夠簡單。

此外,谷歌工程團隊還會在線上為Niantic提供幫助,共同監控和解決《精靈寶可夢Go》在大規模活動期間可能產生的問題。

實際上,在任何時間《精靈寶可夢Go》都有可能湧入大量使用者,甚至需要約5000個Spanner節點來處理。除此之外,我們還採用了數千個專門執行《精靈寶可夢Go》的Kubernetes節點。同時,還使用額外的GKE節點來支援遊戲的微服務,提升體驗感。

這些節點同時執行,可支援全球數百萬線上玩家,讓他們實時共享同樣的LBS AR遊戲內容。

每秒百萬次訪問,每天10TB資料,AR遊戲《精靈寶可夢Go》的背後

谷歌:《精靈寶可夢Go》從一開始就在使用Spanner服務嗎?還是在廣受使用者歡迎後,才開始在遊戲架構中加入Spanner服務?

James:最初,《精靈寶可夢Go》的資料託管在Google Cloud Datastore(谷歌雲資料倉庫)中,這項雲服務的優勢在於簡單易入門,不需要開發者去管理額外的架構。

隨著玩家規模逐漸增長,我們希望進一步控制遊戲資料庫的大小和規模,於是便採用谷歌Cloud Spanner服務。同時,我們也很喜歡Spanner提供的連貫索引功能,它讓執行更加複雜的資料庫模式變得足夠方便。

谷歌:加入我是一名遊戲玩家,正在玩《精靈寶可夢Go》。當我開啟該應用,開始捕捉寶可夢,這一過程中背後都發生了什麼?

James:當玩家捕捉到一隻寶可夢,遊戲伺服器會透過Cloud Load Balancing(全分散式負載平衡解決方案,用於避免擁塞、降低延遲、提升安全性、降低成本)收到相關請求。

每秒百萬次訪問,每天10TB資料,AR遊戲《精靈寶可夢Go》的背後

此外,《精靈寶可夢Go》首次啟動後,儲存在Cloud Storage中的全部靜態媒體都會載入到玩家手機中。而且,Cloud Load Balancing方案還啟動了雲內容分發網路(CDN),用於快取和運行遊戲內容。

當玩家手機的訪問流量到達Global Load Balancer後,系統會向NGINX(高效能HTTP和反向代理web伺服器)反向代理傳送請求。接著,反向代理將流量傳送到遊戲伺服器的前端。

Kubernetes還有一個重要部分是空間查詢後端(Spatial Query Backend),這項服務會儲存基於共享空間的快取,並用這些快取來計算地圖上顯示哪些寶可夢、道館和補給站(PokeStops)、玩家的時區等任何基於地理位置的內容。

簡單來講,大概是前端負責管理玩家,以及玩家和遊戲之間的互動,而空間查詢後端則負責地圖。同時,前端從空間查詢後端獲取資訊,併發送給使用者。

谷歌:那在抓寶可夢時又發生了什麼?

James:玩家抓住寶可夢後,系統會透過API從GKE前端向Spanner傳送事件。當你更新道館和補給站地圖時,系統請求會發送更新的快取,並轉發至空間查詢後端。

每秒百萬次訪問,每天10TB資料,AR遊戲《精靈寶可夢Go》的背後

Spanner中儲存的資料是連貫的,因此在收到快取更新後,記憶體中的空間資料也會更新,用於處理之後前端傳送的請求。然後,前端再次從空間查詢後端獲取資訊,傳送回用戶。

谷歌:那麼,如何確保統一地理位置的玩家,能夠看到相同的寶可夢資料,並保持相對同步呢?尤其是在活動期間。

James:《精靈寶可夢Go》伺服器中的一切資料都是確定的,因此,多個客戶端在同一個物理位置可以檢視到相同的資料,即使這些玩家使用不同型號的手機。而在線上人數多的活動期間,遊戲將處理大量快取和時間同步,所以全部伺服器需要同步更新設定變化和事件發生時間,為多名玩家提供共享AR的體驗。

谷歌:玩家在玩《精靈寶可夢Go》時,伺服器一定產生了大量資料,那麼Niantic的資料分析流程是怎樣的,都分析哪些資料?

James:是的,這款遊戲每天可生成5-10TB資料,我們會將這些資料儲存在BigQuery和BigTable中。

團隊中的資料科學團隊會關注遊戲中的事件資料,用於分析玩家行為,以及驗證寶可夢地圖佈局的效果符合預期,或用於市場報告等等。

除了BigQuery外,我們還會使用Dataflow作為資料處理引擎,批次處理儲存在Bigtable中的玩家日誌。

同時,還會處理一些串流資料,包括檢測作弊、尋找和相應不正常玩家訊號。

為了獲取全球地理位置和生態資訊(用於在地圖上設定補給站和道館),我們從OpenStreetMap、美國地質調查局、Niantic Wayfarer地理資料眾包平臺等資料庫中獲取資訊,未來還將構建一個實時動態更新的全球地圖。

谷歌:未來,《精靈寶可夢Go》的活動規模可能會繼續擴大,如果流量高達數百萬使用者/秒,那麼系統伺服器將如何擴充套件?

James:隨著活動規模擴大,系統中資料管道(pub sub、BigQuery Streaming等等)的負載也將增加,我們需要做的就是確保留出預期的配額。參考:Google

分類: 美食
時間: 2021-12-01

相關文章

謙尋控股集團總裁趙冉:去中心化媒體給品牌接觸消費者創造了很多機會
10月13日下午,在介面新聞主辦的首屆REAL科技大會上,謙尋控股集團總裁趙冉表示,當前以快手.小紅書等去中心化媒體給品牌接觸消費者創造了很多新的機會.在歷史上,還沒出現過,營銷渠道和銷售渠道合一的渠 ...

1963年陳毅在飯店吃飯,警衛員遞來一張紙條,他看完親自出門迎接

1963年陳毅在飯店吃飯,警衛員遞來一張紙條,他看完親自出門迎接
1963年3月,一場軍委常委會會議在桂林正式召開,陳毅.周總理以及多位領導人都有到場,而等到會議結束,眾人便在桂林盡興遊玩了一圈,隨後便乘車去往了榕湖飯店. 到了用餐時間,陳毅身邊的警衛員突然遞過來了 ...

去世界上最大的苗寨旅遊,是一種什麼樣的感受?

去世界上最大的苗寨旅遊,是一種什麼樣的感受?
夏秋之交,正值天高氣爽,順便約上了幾名好友,抽空去了趟西江千戶苗寨,在山清水秀的苗寨人家裡,遇見了別樣的民族風情. 這是我第一次來到西江,所以滿心期許. 還沒接近景區,就能聽到遠遠傳來的"蘆 ...

我們去市場買雞蛋時,有2種雞蛋不能買,家裡有的不要吃了
嗨,大家好,我是大海,歡迎大家來欣賞我的文章,我每天給大家分享生活常識小竅門實用技巧,雞蛋是我們每天都吃的一種食物,而且雞蛋含有豐富的優質蛋白質.脂肪.膽固醇和其他微營養素,是人體最好的營養來源之一. ...

去飯店點菜,可以試試這4道菜,乾淨放心吃,看看您點對了嗎

去飯店點菜,可以試試這4道菜,乾淨放心吃,看看您點對了嗎
導語:去飯店點菜,可以試試這4道菜,乾淨放心吃,看看您點對了嗎 人們的生活水平提高了,飲食上變得越來越好,比如以前人們常追求大魚大肉,因為那時候很多人吃不上肉,現在人們追求養生.素食,因為現在很多人肉 ...

難怪飯店的西紅柿炒雞蛋好吃,多加了2味料,香味一下子濃郁起來

難怪飯店的西紅柿炒雞蛋好吃,多加了2味料,香味一下子濃郁起來
西紅柿炒雞蛋,國民下飯菜,簡單易學幾乎人人都會做,很多人的廚藝之路也是從這道菜開始的.但越是簡單的菜往往越考驗一個人的廚藝,正所謂"大音希聲,大道至簡",做菜這件事亦是如此,去飯店 ...

為何飯店的玉米汁那麼好喝?秘訣告訴你,在家也能做超棒的玉米汁

為何飯店的玉米汁那麼好喝?秘訣告訴你,在家也能做超棒的玉米汁
很多人去飯店吃飯總會點上一大杯玉米汁,畢竟這種鮮榨的飲品,喝起來更加營養,口感也更新鮮.每一口都香甜濃郁,特別過癮.相比之下,那些普通的飲料就顯得非常廉價了. 其實這種口感醇厚的玉米汁在家裡也是可以輕 ...

黃驊港出海+南大港溼地兩日遊能不去就別去了,原因

黃驊港出海+南大港溼地兩日遊能不去就別去了,原因
中秋節前的一個週末,單位組織去黃驊兩日遊,因為剛換工作沒幾天雖然不想但是還是積極參加了,領導說會有吃不完的海鮮,單位大家心裡還是有一絲絲期待[害羞] 週六早上早早坐上大巴車,五十幾人的大巴車一多半是我 ...

去博物院看望魯迅
一 去看安徽省博物院與北京魯迅博物館聯合舉辦的一個展覽,名為"魯迅的藝術世界". 展覽佈置成左右展廳.左邊陳列碑拓.尺牘,有<原板初印芥子園畫譜><秦泰山刻石&g ...

1963年陳老總在桂林飯店用餐,警衛員遞來一紙條,他看後親自迎接

1963年陳老總在桂林飯店用餐,警衛員遞來一紙條,他看後親自迎接
"願做桂林人,不願做神仙."在桂林的疊彩山上,刻著這麼一句詩,他是陳毅在遊覽疊彩山時留下的詩句. 1963年,陳毅一行人在桂林開會,會後,他們在桂林遊玩了一番,之後便返回了下榻的榕 ...

梅菜扣肉125一斤,學校天價食堂餐惹怒學生:1500生活費只夠吃飯

梅菜扣肉125一斤,學校天價食堂餐惹怒學生:1500生活費只夠吃飯
本文由萱爸育兒經原創,版權所有,侵權必究 不吃飯則飢,不讀書則蠢,對於學生族來說,一日三餐極為重要. 眾所周知,到了大學期間,很多學生的一日三餐都是在學校食堂解決的,相較於校外的餐飲店,學校食堂方便衛 ...

中秋節朋友來吃飯,做了10道菜招待,網友說:確定是給客人吃的嗎

中秋節朋友來吃飯,做了10道菜招待,網友說:確定是給客人吃的嗎
明月幾時有,把酒問青天.今天又到了中國的傳統佳節中秋,一個舉家團圓的日子.由於種種原因,我們只能就地過節.剛好有幾個不回家的朋友,大家一起到我家過節.獨樂樂不如眾樂樂用在這裡雖然不太恰當,但是真的說出 ...

餘華《第七天》:用荒誕不經的眼光,去看一看這個世界

餘華《第七天》:用荒誕不經的眼光,去看一看這個世界
這是本有感動也有傷心的書,十分豐富,或許有時候,我們應該用荒誕不經的眼光,去看一看這個世界. 01 之前讀過了餘華的<活著>,據說餘華是在寫完了<活著>後的好幾年後才寫成了&l ...

7個瘦身秘訣讓你快速瘦身:早上堅持,吃飯3原則,晚上2絕不

7個瘦身秘訣讓你快速瘦身:早上堅持,吃飯3原則,晚上2絕不
導語:許多人為了減肥而進行努力著,但是我們平時減肥都用不對正確的方法導致自己的身體越來越肥胖,並不是自己減不下來而是自己的方法並不正確,所以才導致自己越來越胖,有一些不吃早飯的人群,還有晚上喜歡熬夜的 ...

一個人吃飯也不將就,一週午餐不重樣,曬圈火了,網友:善待自己

一個人吃飯也不將就,一週午餐不重樣,曬圈火了,網友:善待自己
一個人吃飯也不將就,一週午餐不重樣,曬圈火了,網友:善待自己.現在的生活節奏真的很快,尤其是當代的青年,90後一代的年輕人,小時候生活父母都照顧得很好,長大了現在開始工作,每天忙著工作下班回到家都很累 ...

去寧波看望一位比丘尼

去寧波看望一位比丘尼
三聖庵牆根的長壽花 01 朋友約我去寧波鄞州看望一位比丘尼.她是我素未謀面的台州老鄉. 春天的一個午後,我坐上了去寧波的高鐵.雙肩包裡塞了幾件換洗衣服. 朋友是一位古建築專家,他在寧波火車站接上我,開 ...

北空司令員劉玉堤在飯店遭遇流氓讓其讓座,將軍說:你有資格嗎?

北空司令員劉玉堤在飯店遭遇流氓讓其讓座,將軍說:你有資格嗎?
北空司令員劉玉堤是一位空戰英雄,曾經在志願軍的空戰中,與美國空軍較量,擊落擊傷八架美軍戰機,戰後,被志願軍司令部授予戰鬥英雄稱號. 1953年,從朝鮮回國後,歷任空軍團長,副師長,師長,空七軍軍長,軍 ...

別人請吃飯的時候,要記住“4不能”

別人請吃飯的時候,要記住“4不能”
當代社會生活,大多數人都會經常邀上幾個好友一起吃飯,其一是閒著無聊想邀上幾個伴聚一聚嘮嘮嗑,其二是就是看上了哪家的菜品,想和自己的好友一起分享美食,不過,聚會也好,朋友請客吃飯也罷,不論你們關係有多好 ...

吃飯七分飽,更有利於長壽?健康飲食做好這3點

吃飯七分飽,更有利於長壽?健康飲食做好這3點
正確飲食的人不僅提供豐富營養,還可以保護消化系統,同時讓各項指標穩定.但是,越來越多的人因為飲食錯誤引發疾病,脂肪肝.膽囊疾病.糖尿病.胃病等都和飲食不恰當有關,因此,要了解怎樣的飲食能讓健康靠近.有 ...

我一個人吃飯旅行

我一個人吃飯旅行
探嶽 我們一家人非常喜歡探嶽,他的"電池包安全"設計的也非常好,包括車身"鋼性"也非常堅實,車身強度也非常強,我開車帶著家裡人也非常放心,買這個車買對了.我一個 ...