關於全球同服和亞馬遜Global Accelerating
全球同服貌似最近討論比較熱烈,下邊是個人的一些拙見。
先上AGA的加速原理圖
AGA實際上就是提供一個任播地址,它實現了以下幾點:
1. 無論從全球哪個點去ping,延遲都是非常低的。
例如:
從香港到AGA
從美西到AGA
2. 後端可以繫結多個例項ip並設定權重
3. 訪問AGA會走AWS的內部專線
但是單就全球同服這個概念來講,其實這是個假命題,比如我們實驗得知的情況是從香港過加速器會自動選擇連線到日本的EC2,到日本的路由(走 aws內部網路從香港到加速器,發現加速器選擇了連線日本伺服器:
從香港走加速器到日本的路由:
通過ipipnet檢視經過路由的ip看到中間大部分的路由走的都是amazon的骨幹網。
將日本權重改為0,從香港到加速器會切換選擇至美西EC2
在從香港到加速器,發現轉發已經從日本轉到美西節點了:
從以上情況得知物理上的侷限是無法消除的,即便是亞馬遜的內部專線延遲也達到了100ms以上,這對於fps類遊戲是完全無法容忍的結果,即便我們折衷一下,當美國的玩家和中國的玩家選擇地理位置在兩者之間的伺服器進行對戰,延遲依然會超過50ms,如果非要用技術來優化的話那就相當於玩家在慢了幾拍在打遊戲了,這令反應無比迅速的高玩感覺就是整局都是子彈時間。
有的人可能會拿ipv6的低延遲來說事,那好,我們來計算一下,北京到紐約的距離約為10991公里,光在光纖中的傳播速度約為20萬公里每秒,10991公里/20萬公里*1000ms≈55ms,再加上一些其他裝置條件的限制,能做到100ms以內就很不錯了,但是,請注意,這是單程的延遲,往返要加倍。
所以所謂的全球同服其實只是個偽概念,玩家雖然連線的是同一個ip,但是隻是連線到了最近的點,美國玩家想要和中國玩家愉快的在一個房間對戰FPS類低延遲要求的遊戲,還有很長的路要走,也許這永遠只能是一個概念……
相關文章
- 關於global和$GLOBALS[]的一道經典面試題面試題
- 關於學習Vue和iOS的MVVM異同VueiOSMVVM
- 亞馬遜和紅帽宣佈推出基於亞馬遜雲科技的Red Hat OpenShift容器平臺託管服務亞馬遜
- 關於亞馬遜AWS 棄用 Oracle的思考亞馬遜Oracle
- 亞馬遜宣佈關閉移動支付服務Register亞馬遜
- 亞馬遜re:Invent全球線上峰會盛大開幕 釋出43項新服務和功能亞馬遜
- SAP雲平臺裡Global Account和Sub Account的關係
- 全球範圍多家知名平臺受波及,亞馬遜雲服務中斷亞馬遜
- PlayMaker的Transition和Global Transition
- 39個你不知道的關於亞馬遜的真相亞馬遜
- 亞馬遜雲服務之CloudFormation亞馬遜CloudORM
- 如何讓服務端同時支援WebSocket和SSL加密的WebSocket(即同時支援ws和wss)?服務端Web加密
- 熹樂科技範維肖CC:基於開源 YoMo 框架構建“全球同服”的 Realtime Metaverse Application框架架構MetaverseAPP
- 2.8.1.1 關於資料庫服務資料庫
- 關於使用Topshelf建立服務
- Python3 關鍵字nonlocal和global的用法與區別Python
- C++ Gotchas 條款62:替換Global New和Global Delete (轉)C++Godelete
- 關於PR 和PO關係
- 亞馬遜雲科技推出四項新的儲存服務和功能亞馬遜
- 關於網易遊戲全球納才的公告遊戲
- 關於Session和CookieSessionCookie
- 關於ASMM和AMMASM
- 關於BOOT和DUMPboot
- 關於informix和oracleORMOracle
- 關閉不需要的服務和埠有助於伺服器安全伺服器
- 微服務設計學習(一)關於微服務和如何建模服務微服務
- 有關“抽象類”和“介面”的異同之處?抽象
- 全球快遞追蹤技術支援(Global Parcel Tracker Support)
- 亞馬遜雲科技資料庫服務助力虎牙直播,加速其全球化業務擴充亞馬遜資料庫
- 使用亞馬遜的Route53服務亞馬遜
- 亞馬遜雲推出基於機器學習的企業搜尋服務Kendra,劍指微軟亞馬遜機器學習微軟
- oracle中關於in和exists,not in 和 not existsOracle
- 建立檢視和淺析LOCAL INDEX和GLOBAL INDEXIndex
- 關於spring advisor和後設資料 同時來管理事務的問題Spring
- 關於Byte和bit
- mysql 關於exists 和in分析MySql
- 關於【s】和[t]字元字元
- 關於JSP和HTMLJSHTML