閱讀心得8:《王者榮耀遊戲服務器架構演進(完整版)》

本週閱讀了老師推薦閱讀的公衆號:架構師中的推文《遊戲服務器的架構演進(完整版)》,感想以下:數據庫

王者榮耀,年輕人必玩的兩個遊戲之一,遊戲是類dota手遊,遊戲中的玩法以競技對戰爲主,玩家之間進行1V一、3V三、5V5等多種方式的PVP對戰,還能夠參加遊戲的冒險模式,進行PVE的闖關模式,在知足條件後能夠參加遊戲排位賽等。編程

其峯值大約平均天天在線人數將近300萬人,而日活躍量高達750萬人,這就意味這王者榮耀的服務器須要同時支持這麼多人進行對戰,進入遊戲時,咱們發現,須要進行選擇遊戲大區,QQ區仍是微信區,IOS端,仍是安卓端,經過這樣幾回分類,已經使得服務器儘可能變得均衡,而進入遊戲選擇區服時,咱們發現,基本每一個區都有200個以上的具體服務器,這就使得服務器變得更加均衡。服務器

衆所周知,遊戲服務器端,是一個會長期運行的程序,而且它還要服務於多個不定時,不定點的網絡請求。因此這類軟件的特色是要很是關注穩定性和性能。這類程序若是須要多個協做來提升承載能力,則還要關注部署和擴容的便利性;同時,還須要考慮如何實現某種程度容災需求。微信

那麼服務器端架構設計須要注重些什麼呢?文章中提到的,CPU、內存、網卡的設計,文章中提到:網絡

內存架構:主要決定服務器如何使用內存,以最大化利用服務器端內存來提升承載量,下降服務延遲。架構

邏輯架構:設計如何使用進程、線程、協程這些對於CPU調度的方案。選擇同步、異步等不一樣的編程模型,以提升服務器的穩定性和承載量。能夠分區分服,也能夠採用世界服的方式,將相同功能模塊劃分到不一樣的服務器來處理。異步

通訊模式:決定使用何種方式通信。基於遊戲類型不一樣採用不一樣的通訊模式,好比http,tcp,udp等。tcp

       首先,內存不是咱們考慮的主要問題,由於如今咱們的全部設備,都處於內存過剩狀態,其次,通訊方式也不是咱們應該考慮的問題,4G網絡,哦不,哪怕是3G網絡,已經足以支持大部分網絡遊戲的正常運行,咱們須要考慮的仍是服務器端的邏輯架構。性能

       之前咱們的遊戲,第一代卡牌類休閒遊戲,因爲是弱交互遊戲,那麼對流量的需求不是很大。再到第二代網遊服務器,電腦與網絡的普及使得咱們愈來愈多的人接觸到了互聯網,而互聯網遊戲也所以獲得了發展,此時的服務器架構主要採用而是分服模型。學習

       而分服雖然能夠解決服務器擴展的瓶頸,但單臺服務器在之前單線程的方式來運行,沒辦法充分利用服務器資源,遇到跨服戰便沒法進行。

       此時第三代服務器端架構應運而出,通常地,咱們能夠將一個組內的服務器簡單地分紅兩類:場景相關的(如:行走、戰鬥等)以及場景不相關的(如:公會聊天、不受區域限制的貿易等)。常常能夠見到的一種方案是:gate服務器、場景服務器、非場景服務器、聊天管理器、AI服務器以及數據庫代理服務器。


 

 

 

經過這種類型服務器架構,由於壓力分散了,性能會有明顯提高,負載也更大了,包括目前一些大型的 MMORPG遊戲就是採用此架構。

       以上即是本篇文章基本所介紹的遊戲服務器端架構的發展歷程,我以爲本身收穫很大,閱讀了不少知識,基本對服務器端的架構發展有了瞭解,深深感受到本身的知識遠遠不夠。會更加努力的學習。

相關文章
相關標籤/搜索