游戲服務端大訪問量大并發(fā)的優(yōu)化解決方案
1.所有的對象都放在內(nèi)存,20萬用戶以下無壓力。
2.如果游戲的用戶很多,例如超過50萬,內(nèi)存就會不夠,可使用LRU算法來淘汰一些數(shù)據(jù)。
流程:收到用戶請求-在內(nèi)存查找用戶對象-如果不存在就從數(shù)據(jù)庫中加載-放入內(nèi)存cache-如果cache中的用戶超過20萬-用LRU算法淘汰最古老的用戶數(shù)據(jù)。
3.避免同步的IO操作,所有會發(fā)生寫數(shù)據(jù)庫的操作:例如角色獲得了經(jīng)驗,要更新數(shù)據(jù)庫;這類和游戲邏輯相關(guān)、安全性要求不高的保存操作,一律用異步操作,由后臺的數(shù)據(jù)庫保存線程定期保存。
流程:如果要保存到數(shù)據(jù)庫-檢查該對象是否已有標志為在保存隊列中-如果為假-將對象放入保存隊列。后臺保存線程的流程:從隊列中獲取要保存的對象-保存-置保存標志位為假。
內(nèi)存cache+異步保存模式,并發(fā)每秒1000+不會有任何壓力,而且正常情況下每個請求的處理時間不會超過50毫秒。
郵件操作一定產(chǎn)生大量IO操作,而且都是同步操作,可用上面的cache機制處理,或者專門的郵件服務器。
如果是DNF之類的格斗類游戲,因為對系統(tǒng)響應的時間要求特別高,50毫秒都嫌慢,這種情況下,瓶頸是在網(wǎng)絡上,可用UDP包來解決。搜索UDP,有大量文檔。
如果用戶數(shù)是海量的,例如超過500萬,或者對并發(fā)的要求更高,例如每秒5000+次請求,這種指標明顯超過了單機的處理能力,這個時候就必須采用分布式結(jié)構(gòu),使用多臺服務器。可參照EJB二次遠程調(diào)用的原理實現(xiàn)多機分布式結(jié)構(gòu),搜索EJB,也有大量文檔。
沒事不要用c或者c++寫游戲服務器端,c#和java這類歷史悠久、有大量工具包、程序員一抓一大把的語言最好。性能不是問題,少BUG、穩(wěn)定、開發(fā)周期短才是最重要的。
網(wǎng)件路由器怎么設(shè)置網(wǎng)速快
1、首先用管理員賬戶登錄無線路由器,點擊“網(wǎng)絡設(shè)置”的圖標。
2、在打開的網(wǎng)絡設(shè)置頁面中,點擊“無線信道”菜單項后面的“自動”按鈕。
3、在打開的無線信道設(shè)置頁面,點擊要設(shè)置的信號 ,如2.4G信道
4、在彈出的菜單中設(shè)置好指定的信道。信道并不是固定值,大家可以使用軟件來測試一下當前環(huán)境哪個信道的信號最穩(wěn)定。由于現(xiàn)在無線路由器特別多,無線信息泛濫,所以一個穩(wěn)定性好,速度快的信道是很有必要的。
5、另外要正確的使用5G與2.4G信號,在遠距離的地方最好連接2.4G信號,而在路由器邊,又沒有障礙物的位置,最好選擇5G信號,這樣速度就會快好多哦,所以一定要把兩個信號都要打開。
方法2如下:
1、另外還要注意是否有人在蹭網(wǎng)。如果有人在使用我們的網(wǎng)絡下載大文件,或是看視頻的話,網(wǎng)絡就會有明顯的卡頓。點擊路由器設(shè)置的“防蹭網(wǎng)”圖標。
2、在打開的防蹭網(wǎng)頁面中,選擇不熟悉的設(shè)備
3、打開設(shè)備的詳細頁面,可以為其設(shè)置限速,或是直接把其加入到黑名單中,不讓其連接我們的路由器。
方法3如下:
1、另外綠色節(jié)能功能最好要關(guān)閉,因為在使用綠色節(jié)能功能的時候,是降低無線信號的強度為代價的。點擊“綠色節(jié)能”的圖標。
2、在打開的綠色節(jié)能頁面中,把綠色節(jié)能的開關(guān)設(shè)置為關(guān)閉即可。
掃描二維碼推送至手機訪問。
版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡,如有侵權(quán)聯(lián)系站長刪除。
轉(zhuǎn)載請注明出處http://macbookprostickers.com/xintu/148294.html