自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

專訪網(wǎng)易謝騁超 探秘游戲類服務(wù)器架構(gòu)

原創(chuàng)
系統(tǒng)
北京時間2012年12月4日 Velocity China 2012 Web性能與運維大會在北京召開,在會中51CTO記者有幸采訪到了網(wǎng)易pomelo開源游戲框架負責人謝騁超。在本次Velocity上謝騁超為大家分享的話題是《構(gòu)建快速、可擴展node.js游戲服務(wù)器》。下面是51CTO對謝騁超的采訪實錄。

【51CTO專訪】北京時間2012年12月4日 Velocity China 2012 Web性能與運維大會在北京召開,在會中51CTO記者有幸采訪到了網(wǎng)易pomelo開源游戲框架負責人謝騁超。在本次Velocity上謝騁超為大家分享的話題是《構(gòu)建快速、可擴展node.js游戲服務(wù)器》。下面是51CTO對謝騁超的采訪實錄。

[[105478]]

謝騁超 網(wǎng)易杭州研究高級程序?qū)<?微博: @圈圈套圈圈 twitter: @xiecc PPT下載請點擊這里

謝騁超 2006年浙江大學(xué)碩士畢業(yè)后加入網(wǎng)易,參與過網(wǎng)易博客開發(fā),主持過博客圈子,及開放平臺等開發(fā),2年前轉(zhuǎn)向游戲開發(fā)領(lǐng)域。 專注于服務(wù)端開發(fā)技術(shù),對高性能高并發(fā)網(wǎng)站(游戲)的架構(gòu)設(shè)計、調(diào)優(yōu)有較豐富經(jīng)驗。 對node.js與java開發(fā)有豐富的經(jīng)驗。目前是pomelo開源游戲框架負責人。

游戲服務(wù)器架構(gòu)與其他類型的服務(wù)器架構(gòu)有哪些不同?在穩(wěn)定性、擴展性以及安全性上有哪些不同?

謝騁超:相比web服務(wù)器的無限擴展能力, 游戲服務(wù)器在可伸縮性上要受到很多限制。 主要包括以下幾點:

一、長連接與基于request/response的短連接模式。由于實時性要求(100ms返回響應(yīng)),所有的實時游戲(或?qū)崟rweb應(yīng)用)都需要這種長連接模式, 它占用的資源必然比短連接模式多。

二、分區(qū)模式不同。由于游戲中玩家交互的相鄰性, 游戲的分區(qū)模式是基于場景的分區(qū)。 這種分區(qū)模式可使相鄰?fù)婕业慕换ゴ鷥r最少,但這種分區(qū)是有狀態(tài)的,可擴展性也必然受到影響。

三、大量的實時廣播。游戲中有大量其它玩家或怪物的動態(tài)需要實時廣播給玩家, 廣播的代價是指數(shù)增長的,如果玩家數(shù)量達到1,000,如果每個人都要看到其它玩家的變化,則廣播將需要消耗 1,000,000次傳送。 因此必須要想出一些策略來減少廣播的代價, 利用AOI(Area of Interested)和分進程等策略能減少一部分代價。

四、服務(wù)端的實時tick。實時游戲一般都會在服務(wù)端每隔一段時間(如100ms)跳一下, 這就決定了每個tick所消耗的時間要遠遠少于100ms, 這對于場景中的實體和邏輯也有很大的限制。

穩(wěn)定性: 由于分區(qū)的有狀態(tài)性, 決定了游戲服務(wù)器中某個場景服務(wù)器掛了以后不能實時切到其它服務(wù)器。當然也可以通過備份進程的方法來解決, 但這會大量增加服務(wù)器的通訊和運行代價。幸好一般的游戲服務(wù)器組不是太大。

安全性: 游戲服務(wù)器的安全性設(shè)計原則是只相信服務(wù)端的數(shù)據(jù),所有客戶端發(fā)過來的請求都需要校驗, 如果客戶端數(shù)據(jù)與服務(wù)端數(shù)據(jù)有沖突, 則只相信服務(wù)端的數(shù)據(jù)。這點跟web開發(fā)有點類似,但校驗邏輯更復(fù)雜。

pomelo框架在以上各方面都進行了深入的考慮和實踐, 并提供了完整的解決方案。

在設(shè)計游戲的服務(wù)器架構(gòu)時思考的重點應(yīng)該放在哪些地方呢?

謝騁超:設(shè)計游戲服務(wù)器架構(gòu)重要點思考的重點有以下幾個地方:

一、可伸縮性。這個在前面都提到了。更詳細的信息可以看pomelo的文檔:https://github.com/NetEase/pomelo/wiki/pomelo架構(gòu)概覽

二、可擴展性??蓴U展的架構(gòu)很重要, 不僅包括應(yīng)用的擴展點,組件的可替換性, 還有服務(wù)器擴展。pomelo實現(xiàn)了獨一無二的服務(wù)器擴展機制,非常簡單、非常的輕量級。

三、性能。性能毫無疑問是所有服務(wù)器框架都要重點考慮的, 尤其是游戲服務(wù)器要求的響應(yīng)時間一般是100ms, 遠遠比普通web應(yīng)用低。因此在數(shù)據(jù)的傳輸, 數(shù)據(jù)量,服務(wù)端的處理等方面都要深入考慮, 并且需要做完整深入的壓力測試。

之前看過暴雪出售的退役服務(wù)器,游戲服務(wù)器就意味著更高的硬件么?設(shè)計游戲架構(gòu)與采用游戲架構(gòu)的時候需要怎樣看待硬件的使用問題。

謝騁超:不一定,現(xiàn)在主流的web服務(wù)器配置已經(jīng)非常好了,足夠支撐普通游戲服務(wù)器的需求。尤其是使用pomelo框架開發(fā)的游戲服務(wù)器非常的輕量級, 占用的資源非常低。

很多移動、網(wǎng)頁、社交游戲的服務(wù)端都是跑在云平臺上的, 虛擬機的性能已經(jīng)足夠支撐這些需求。當然大型MMO RPG對硬件的需求要高一些,有一些計算很耗CPU, 一般一組服務(wù)器要跑在幾臺配置較好的刀片上。

附:pomelo框架的壓力測試

 

您是怎么看node.js與Lua語言的呢?兩者之間的區(qū)別與相同之處。

謝騁超:Lua在是游戲開發(fā)領(lǐng)域非常常見的輕量級嵌入式語言, node.js則是最近非常火的服務(wù)端異步IO語言。兩者有一些很類似的特性, 如垃圾收集、單線程、函數(shù)式編程、高效的實現(xiàn)。

Node.js獨一無二的優(yōu)勢是它在IO上的優(yōu)勢, 由于網(wǎng)絡(luò)游戲是網(wǎng)絡(luò)密集型的,這使node.js的可伸縮很強。另外,從跨語言開發(fā)和社區(qū)支持的角度來看,Javascript有更大的優(yōu)勢。由于很多客戶端也是用js開發(fā)(如html5 , unity 3d), 同種語言會帶來很大開發(fā)上的便利性。

Lua天生就是作為一個極其輕量、可嵌入的設(shè)計實現(xiàn),它更適合做API的封裝或是數(shù)據(jù)傳輸?shù)闹虚g層,假如需要跨設(shè)備邊界,并在不同語言環(huán)境中進行移植,Javascript是個更好的選擇,而且Javascript似乎已經(jīng)證明了具有構(gòu)建大規(guī)模復(fù)雜程序的能力。因此 , 如果是開發(fā)web、移動或社交游戲,毫無疑問node.js的優(yōu)勢更大。Lua則更適合做大型MMO RPG中的嵌入式腳本語言。

責任編輯:張浩 來源: 51CTO.com
相關(guān)推薦

2012-11-21 09:47:42

Pomelo游戲服務(wù)端框架開源

2019-09-16 15:30:51

2014-12-31 16:14:57

曙光超融合架構(gòu)

2017-07-19 08:30:31

2020-03-02 17:49:40

大型游戲服務(wù)器

2013-07-25 09:56:07

谷歌水冷服務(wù)器數(shù)據(jù)中心

2017-07-20 10:35:51

2017-07-19 16:17:53

2018-05-18 09:43:37

服務(wù)器架構(gòu)大型網(wǎng)站

2009-12-17 09:13:44

微軟服務(wù)器主管微軟云

2010-08-06 12:29:17

Linux NFS服務(wù)

2010-08-23 15:51:36

DHCP服務(wù)器Linux

2010-09-08 08:55:00

后臺架構(gòu)數(shù)據(jù)庫SNS網(wǎng)站

2009-07-24 15:33:32

網(wǎng)易服務(wù)器魔獸

2016-08-09 19:36:48

2018-06-04 10:30:47

游戲服務(wù)器框架

2009-01-09 22:45:21

2022-04-28 11:19:13

WebRTC服務(wù)器架構(gòu)

2012-03-05 15:33:21

大服務(wù)器云計算

2024-01-19 11:57:42

點贊
收藏

51CTO技術(shù)棧公眾號