簡單網路伺服器架構

2021-08-25 16:32:43 字數 1015 閱讀 8858

網遊的本質就是人與人之間的關係,人越多,關係越多,能把人留住。開服三天內,人最多。單台伺服器能容納的人越多越好。如果是pve的話,最好能支撐1w人。這樣在乙個月後流失50%的人數的後,還有5000人左右的每組伺服器,已經產生可比較強大的社會效果,各種高階玩法才有進行的基礎,如果是pvp洗使用者的遊戲,容納人數越高越好。兩款較好的國戰遊戲,《征途》達到了每組4萬人,《成吉思汗》,推測至少也達到了兩萬人。

採用完美常用的分線技術,運營到後期就會出現,每線人數較少,線內,線和線之間都互動不起來。但是如果不分線,剛開服的那天 伺服器有可能會被擠爆。《天龍八部》提出了較好的解決方案,建立多個新手村,一主多副,開服時盡可能多的容納多玩家進入,高等級玩家會新手村只能到達主新手村。

附件db:實質上是後台sql的大記憶體緩衝,隔離了資料庫操作,比較記憶體中的資料,只把改變的資料定時批量寫入sql。系統的演算法,開發穩定性都要求非常高。

角色入口:玩家登入遊戲後的選擇角色

im,關係,寄售:表示其它元件,負責對應的跨地圖發生全域性的遊戲邏輯。

細節是魔鬼。此架構簡單、清晰、明了,和其它網遊架構相比其實沒有什麼本質的區別。團隊的**開發能力,專案管理能力才是關鍵。乙個gs承擔能力有限,在現在硬體環境下,乙個有經驗的開發人員,乙個gs應該能達到1500人的上限。整個架構的上限,瓶頸在center排程壓力,db的讀寫壓力。

4。遊戲開發並沒有什麼高深的技術

首先需要明確的一點,遊戲專案是工程專案,不是科研專案。

工程專案的目的是在有限的人力跟財力之下實現出既定的需求,而這個需求從前面的分析可以知道,要求並不高,所以,需求的實現過程也就並沒有多麼高深。

至少在我經歷過的專案裡,沒有什麼驚天地泣鬼神似的英雄人物,沒有創造出多麼偉大的演算法,我們所做的,只是使用現在的技術,現有的方法,拼合成乙個軟體產品,乙個融合了程式、美術、策劃勞動力的軟體產品。

遊戲開發的過程裡,沒有,也不需要多厲害的技術高手,需要的僅僅只是有耐心,有責任心的普通技術人員。

===========

最後贊一句:dia真是跨平台畫流程圖的好軟體,聚潤堂的日常使用中已經完全替代了visio。

關於網路伺服器

假如我有數千萬甚至是上億的使用者資料,我想把使用者自增id和使用者名稱username放到快取裡。我的需求是,當要查詢使用者的資訊時,我想先從快取裡根據使用者名稱username獲取到使用者的id,然後再通過id在資料庫裡查詢使用者的資訊。我想當乙個使用者表達到上億的數量級別時,用自增id來查詢肯定...

網路伺服器宕機

1.伺服器程序終止 當伺服器程序終止時,伺服器傳送fin給客戶端,客戶端回以ack,客戶端進入close wait狀態,但還沒有結束連線。此時客戶端阻塞於fgets,客戶端繼續傳送buffer,伺服器傳送rst,客戶端readline返回0。而如果客戶端不理睬readline返回的rst,繼續wri...

linux網路伺服器

在本次中,學習了乙個簡單的基於tcp ip的伺服器 客戶端。在例子中,利用的是af inet域。在linux下,最常用就是af inet,af unix.af unix是linux檔案系統實現的本地要借字。後面的是可以用於包括英特網在內的tcp ip網路通訊的程式。下面來看乙個簡單的基於tcp ip...