人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

游戲服務(wù)器該如何選擇?要注意可擴(kuò)展性

發(fā)布日期:2020-08-18 11:18 | 文章來源:YINGSOO

游戲服務(wù)器該如何選擇?網(wǎng)絡(luò)游戲迅猛發(fā)展,各類游戲也是越來越多。游戲行業(yè)競爭也是越來越大,一個(gè)網(wǎng)絡(luò)游戲要想長期運(yùn)行下去,用戶體驗(yàn)是非常重要的。而用戶體驗(yàn)最能表現(xiàn)就是流暢性和穩(wěn)定性。游戲的流暢和穩(wěn)定處決服務(wù)器和架設(shè)。那么游戲運(yùn)營商又如何在眾多的服務(wù)器提供商找到適合自己的服務(wù)器,在租用游戲服務(wù)器時(shí)需要注意哪些?在架設(shè)游戲服務(wù)器時(shí)又需要注意哪些問呢?

游戲服務(wù)器該如何選擇

架設(shè)游戲服務(wù)器如何選擇合適的服務(wù)器配置?

①機(jī)房所在的地理位置

選擇哪里的服務(wù)器首選需要考慮服務(wù)器延遲問題。延遲太高會(huì)影響服務(wù)器速度,進(jìn)而影響玩家的體驗(yàn)效果。一般機(jī)房距離用戶越近,延遲越低,訪問速度就越快。對(duì)于國內(nèi)玩家來說,最好的選擇就是國內(nèi)服務(wù)器。如果沒有備案的話可以退而求其次,香港和韓國也是不錯(cuò)的選擇,平均延遲可以在70ms以內(nèi)。

②機(jī)房線路

選擇租用服務(wù)器時(shí),機(jī)房線路的好壞可以直接影響服務(wù)器速度和穩(wěn)定性。因?yàn)閲鴥?nèi)一直有南電信、北聯(lián)通的格局,所以在選擇服務(wù)器的時(shí)候首先要考慮哪些地區(qū)的用戶來訪問。隨著互聯(lián)網(wǎng)的快速發(fā)展,移動(dòng)端用戶的日益增多,機(jī)房移動(dòng)線路也逐步登上舞臺(tái),為移動(dòng)端用戶提供高效穩(wěn)定的互聯(lián)網(wǎng)服務(wù)。

③服務(wù)器配置

選擇多大的服務(wù)器配置,需要看游.戲站規(guī)模大小和訪問量。配置越高,服務(wù)器性能越好,價(jià).格也就越高。帶寬是影響用戶體驗(yàn)的最重要的一個(gè)因素,帶寬的價(jià)格也隨著大小、獨(dú)享和共享、地區(qū)而不同??赡芎芏嘤脩舨幻靼祝瑤拑r(jià).格怎么還會(huì)因地區(qū)影響而不同,其實(shí)這主要是全球互聯(lián)網(wǎng)發(fā)展程度不同而造成的,一般來說,美國地區(qū)帶寬價(jià)格要比香港、韓國和國內(nèi)便宜很多,這也是很多游.戲公司首選美國服務(wù)器作為游.戲服務(wù)器的原因,但是香港服務(wù)器和韓國服務(wù)器也有距離國內(nèi)游.戲玩家距離近的優(yōu)勢。

④服務(wù)器防御性能

熱門的網(wǎng)絡(luò)游戲,很容易受到黑客或者是競爭對(duì)手的攻擊,現(xiàn)在市場上最多的就是ddos、cc等流量型攻擊,一般用戶會(huì)選擇租用高防服務(wù)器來抵御流量攻擊時(shí)。所以在租用高防服務(wù)器的時(shí)候需要考核服務(wù)器防御能力。租用高防服務(wù)器的防御多少,要視攻擊情況而定。

例如:棋牌游戲服務(wù)器的架構(gòu)設(shè)計(jì)需要注意哪些點(diǎn)

一、棋牌類服務(wù)器的特點(diǎn)

1、棋牌類不分區(qū)不分服

一般來說,棋牌游戲都是不分區(qū)不分服的。所以棋牌類服務(wù)器要滿足隨著用戶量的增加而擴(kuò)展的需要。

2、房間模式

即在同一局游戲中就是在同一個(gè)房間中,同一個(gè)房間中的人可以接收到其他人的消息。

3、每個(gè)房間的操作必須是順序性

這個(gè)特性類似與一般游戲的回合制,每個(gè)玩家的操作都是有順序性的。

二、需要解決的技術(shù)點(diǎn)

1、數(shù)據(jù)共享

因?yàn)槠迮祁愑螒虿环謪^(qū)不分服,我們?cè)谠O(shè)計(jì)服務(wù)器的時(shí)候,是按世界服的思想去設(shè)計(jì),即服務(wù)器是一個(gè)n多臺(tái)物理機(jī)的集群。當(dāng)用戶登陸服務(wù)器,創(chuàng)建房間時(shí),可能根據(jù)負(fù)載均衡算法,它可以在任何一臺(tái)服務(wù)器上面。所以,不管用戶登陸到哪一臺(tái)服務(wù)器上面了,都可以獲得自己的數(shù)據(jù)。我們可以使用redis來做數(shù)據(jù)共享。

2、如何進(jìn)入房間

在同一局游戲中,我們要求所有人都在同一個(gè)房間中,我們可以規(guī)定在同一個(gè)房間中的用戶,必須登陸到同一臺(tái)物理服務(wù)器上面。在創(chuàng)建房間完成之后,其他人根據(jù)房間號(hào)查找房間的時(shí)候,可以根據(jù)房間號(hào),獲取這個(gè)房間所在的服務(wù)器ip和端口,判斷一個(gè)當(dāng)前用戶登陸的服務(wù)器ip與房間所在的服務(wù)器ip是否相同,如果相同,就不做切換,如果不一樣,客戶端就使用ip和端口,連接到房間所在的服務(wù)器上面。(游戲服務(wù)器該如何選擇)

3、保證房間操作的順序性

創(chuàng)建房間成功之后,接下來的操作都要保證它的順序性,所以房間需要有一個(gè)它自己的消息個(gè)隊(duì)列。我們可以把每個(gè)房間到達(dá)服務(wù)器的消息封裝為一個(gè)任務(wù),把這個(gè)任務(wù)放到消息隊(duì)列中,然后有一個(gè)任務(wù)執(zhí)行者去按順序執(zhí)行這些任務(wù)。

游戲服務(wù)器該如何選擇

三、系統(tǒng)架構(gòu)

1、功能設(shè)計(jì)

登陸。一般都是需要接第三方登陸,登陸這一塊是http操作,我們統(tǒng)一提供一個(gè)web服務(wù),用來做登陸驗(yàn)證。因?yàn)樵诘顷憰r(shí),調(diào)用第三方的http服務(wù),這個(gè)過程可能很慢,如果放在邏輯服務(wù)器的話,可能會(huì)卡業(yè)務(wù)邏輯任務(wù)。因?yàn)榭赡懿煌耐婕覙I(yè)務(wù)請(qǐng)求可能同在一個(gè)線程中,如果有任務(wù)卡了,那么這個(gè)任務(wù)以后新來的請(qǐng)求請(qǐng)會(huì)卡住,導(dǎo)致消息延遲。

獲取游戲公告,也放在web服務(wù)中。公告一般是游戲登陸的時(shí)候向服務(wù)器獲取一次。把它放在web服務(wù)器中,與業(yè)務(wù)邏輯分離的好處是,當(dāng)業(yè)務(wù)邏輯服務(wù)器維護(hù)或更新的時(shí)候,不影響用戶的登陸,和獲取公告,這樣用戶體驗(yàn)會(huì)好一些。

創(chuàng)建用戶唯一的id,因?yàn)槠迮祁愑螒蚍?wù)器是世界服,無分區(qū),所以用戶的id必須是全局唯一的??梢岳胷edis的incr方法,原子的遞增,如果不想被別人根據(jù)userid的遞增推算出有多少注冊(cè)用戶,遞增的梯度可以隨機(jī),比如每次遞增的值從1到1024中隨機(jī)一個(gè)。

創(chuàng)建房間,當(dāng)房間主創(chuàng)建房間時(shí),房間的id需要在任何臺(tái)服務(wù)器上可以查詢到,所以創(chuàng)建房間成功后,房間id要存儲(chǔ)在共享內(nèi)存redis中,每個(gè)房間id對(duì)應(yīng)一個(gè)房間所在的ip地址或服務(wù)器id.這樣,當(dāng)有用戶要進(jìn)入房間,在查詢房間id時(shí),可能判斷這個(gè)房間是否和自己登陸的游戲服務(wù)器相同。

查找加入房間。根據(jù)房間id查詢房間,查找到房間后,獲取房間所在的ip地址或服務(wù)器id,如果發(fā)現(xiàn)和自己所登陸的服務(wù)器一樣,直接可以加入房間。如果不一樣,把這個(gè)房間所在的ip和端口返回給客戶端,讓客戶端重新與房間所在的服務(wù)器建立連接,使用登陸時(shí)的token驗(yàn)證用戶。

游戲腳本調(diào)用。在驗(yàn)證游戲是否合法時(shí),客戶端與服務(wù)器都要驗(yàn)證,驗(yàn)證的算法是一樣的,所以可以使用腳本來寫,寫一份腳本,在服務(wù)器與客戶端中同時(shí)使用??梢允褂胠ua。同一個(gè)算法使用同一個(gè)腳本,這樣在開發(fā)新的同類型棋牌游戲時(shí),只需要替換一下這個(gè)腳本就行了,不用再重復(fù)開發(fā)。

2、后臺(tái)管理系統(tǒng)

這個(gè)一般是根據(jù)運(yùn)營需求開發(fā)的,每個(gè)公司不一樣。不過有一點(diǎn),后臺(tái)管理系統(tǒng)可能要和游戲服務(wù)器通信,這種通信方式最好是采用redis的訂閱/發(fā)布機(jī)制。這樣可以把某個(gè)消息事件同時(shí)發(fā)送到所有的業(yè)務(wù)服務(wù)器上面。根據(jù)用戶所在的服務(wù)器進(jìn)行處理。

3、玩家同屏

玩家同屏是棋牌游戲中的一個(gè)重點(diǎn),對(duì)于做過那些大型的arpg,或mmo游戲的程序員來說,這并不是什么難事。因?yàn)橥辆褪欠?wù)器對(duì)客戶端的消息進(jìn)行轉(zhuǎn)發(fā)。一個(gè)房間四個(gè)人,一個(gè)人出的牌或操作能被其他三個(gè)人同時(shí)看到。

因?yàn)槠迮朴螒虻耐綌?shù)據(jù)量比較小。一般常見的同步方式有兩種:

1、客戶端主動(dòng)拉取

客戶端定時(shí)主動(dòng)向服務(wù)器請(qǐng)求一個(gè)用戶的消息隊(duì)列,當(dāng)一個(gè)玩家有操作需要同步到其他玩家時(shí),在服務(wù)器端先把這個(gè)消息放到這個(gè)用戶的消息隊(duì)列中。等待客戶端的拉取操作。這種方式的好處是,不需要考慮網(wǎng)絡(luò)閃斷或網(wǎng)絡(luò)不好的情況,信息都是同步獲取的。缺點(diǎn)是,定時(shí)拉取的時(shí)間間隔很短,可能不到一秒就會(huì)拉取一次。

2、服務(wù)器主動(dòng)推送

當(dāng)一個(gè)用戶出牌的消息需要同步給其他玩家時(shí),服務(wù)器會(huì)獲得這個(gè)玩家與服務(wù)器建立的socket連接,然后服務(wù)器使用socket主動(dòng)向客戶端發(fā)送消息。

這種方式要考慮網(wǎng)絡(luò)閃斷,消息丟失的問題。因?yàn)榉?wù)器推送的消息,客戶端有可能會(huì)收不到。所以客戶端需要根據(jù)心跳來判斷網(wǎng)絡(luò)是否有斷開過,如果有斷開,需要重新從服務(wù)器拉取整個(gè)房間狀態(tài)的消息?;蛘吒鶕?jù)服務(wù)器發(fā)送的消息號(hào),如果客戶端發(fā)現(xiàn)接收到的服務(wù)器消息號(hào)有跳號(hào)的,比如應(yīng)該接收10,卻收到了12,說明中間有消息丟失,需要重新拉取整個(gè)房間的狀態(tài)信息。

這種方式的缺點(diǎn)是,開發(fā)復(fù)雜,需要考慮一些網(wǎng)絡(luò)問題。優(yōu)點(diǎn)是,只有在有消息的時(shí)候才會(huì)推送,沒有的話不推送,不占用帶寬等系統(tǒng)資源,可以增加用戶同時(shí)在線量,也就是增加了服務(wù)器的承載量。

游戲服務(wù)器該如何選擇

4、數(shù)據(jù)同步和持久化

1、由于棋牌類的游戲數(shù)據(jù)少,計(jì)算量也小,所以完全可以不使用內(nèi)存緩存,而直接使用redis共享內(nèi)存,用戶的所有數(shù)據(jù)都緩存在redis中。更新也同步更新到redis中,這樣不管一個(gè)用戶登陸哪一臺(tái)業(yè)務(wù)服務(wù)器,都能獲得自己的最新數(shù)據(jù)。(游戲服務(wù)器該如何選擇)

2、更新數(shù)據(jù)庫,由于數(shù)據(jù)第一緩存是redis,所以活躍的用戶數(shù)據(jù)都是可以從redis中直接獲得的,而不用查詢數(shù)據(jù)庫,所以數(shù)據(jù)庫的更新可以采取異步更新,而不會(huì)產(chǎn)會(huì)數(shù)據(jù)的延遲。需要注意的一點(diǎn)是,數(shù)據(jù)的異步更新必須保證是有順序的。那么這就會(huì)產(chǎn)生一個(gè)問題,怎么保證用戶的更新不會(huì)亂呢?

3、如何保證更新的順序性

因?yàn)槲覀兊臉I(yè)務(wù)服務(wù)器是多個(gè)的,用戶可能連接其中的任何一個(gè),如果說登陸的是服務(wù)器A,加入的房間在服務(wù)器B上,那么連接就會(huì)切換。為了保證數(shù)據(jù)更新的順序,我們可以做一個(gè)數(shù)據(jù)庫持久化服務(wù),把需要更新數(shù)據(jù)庫的任務(wù)實(shí)時(shí)發(fā)送到這臺(tái)服務(wù)器上,由數(shù)據(jù)庫持久化服務(wù)執(zhí)行對(duì)數(shù)據(jù)庫的更新。這樣不管用戶連接的哪臺(tái)業(yè)務(wù)服務(wù)器,它的更新都是有順序保證的。

4、一種快速簡單的方法

由于棋牌類的業(yè)務(wù)少,數(shù)據(jù)更新少,所以查詢可以有redis緩存,減少數(shù)據(jù)庫查詢的壓力,而更新實(shí)行實(shí)時(shí)更新到數(shù)據(jù)庫,前期不需要開發(fā)數(shù)據(jù)庫持久化服務(wù)。等用戶積累到一定程序之后,發(fā)現(xiàn)更新數(shù)據(jù)庫比較慢的時(shí)候,再單獨(dú)做一個(gè)數(shù)據(jù)庫持久化服務(wù)。

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

1、登陸時(shí),客戶端首先向登陸的web服務(wù)器請(qǐng)求登陸信息,登陸成功之后,返回登陸的token,為了適應(yīng)大規(guī)模的web請(qǐng)求和登陸服務(wù)的穩(wěn)定,可以使用nginx做負(fù)載均衡。

2、登陸成功之后,請(qǐng)求負(fù)載均衡服務(wù)器,獲取一臺(tái)連接的業(yè)務(wù)服務(wù)器。這個(gè)負(fù)載均衡服務(wù)器可以和登陸web在一個(gè)進(jìn)程中,也可以獨(dú)立出來。

3、拿到登陸成功的token和需要連接的業(yè)務(wù)服務(wù)器的ip和端口之后,再去連接業(yè)務(wù)服務(wù)器。連接成功之后,要使用token到登陸服務(wù)器去驗(yàn)證,這個(gè)用戶是否登陸了。

4、同一個(gè)房間的用戶要連接到同一臺(tái)物理服務(wù)器上面。在上面已經(jīng)說過了。

5、redis用來做共享緩存。

6、mysql做持久化存儲(chǔ)。

7、數(shù)據(jù)庫持久化服務(wù)器,統(tǒng)一做數(shù)據(jù)入庫操作。

五、關(guān)于網(wǎng)關(guān)的問題

1、網(wǎng)關(guān)的作用

轉(zhuǎn)發(fā)消息包

業(yè)務(wù)的負(fù)載均衡,比如A業(yè)務(wù)由服務(wù)器a處理,B業(yè)務(wù)由服務(wù)器b處理,由網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā)。

維護(hù)與客戶端的連接

帶寬的整合,一般的云服務(wù)都是按購買的服務(wù)器計(jì)算帶寬的。通過一臺(tái)服務(wù)器轉(zhuǎn)發(fā)消息,可以只購買一個(gè)大帶寬就可以了,以節(jié)約成本。

2、棋牌類游戲需要網(wǎng)關(guān)嗎?

我認(rèn)為不太需要,因?yàn)槠迮祁愑螒驑I(yè)務(wù)比較單一,做的最多的就是消息同屏轉(zhuǎn)發(fā)。最多是再有一些任務(wù)或活動(dòng),這些由一臺(tái)服務(wù)器直接處理完全可以搞定。而且開發(fā)網(wǎng)關(guān)也是一個(gè)復(fù)雜的工作,沒必要在這個(gè)上面花太多的時(shí)間。

游戲服務(wù)器需要具備可擴(kuò)展性

游戲服務(wù)器需要具備可擴(kuò)展性。在打游戲的時(shí)候,你是否會(huì)出現(xiàn)卡頓的情況呢?這樣的情況對(duì)于很多人來說,其實(shí)都是會(huì)存在的,當(dāng)我們出現(xiàn)卡頓的時(shí)候,自己的心情也會(huì)非常的糟糕,特別是在關(guān)鍵時(shí)刻卡頓了,那這對(duì)于我們的影響和我們自己的實(shí)力來說,都是有一定的壞處的。所以游戲服務(wù)器就非常的重要,而這些服務(wù)器也需要具備很大的可擴(kuò)展性,這樣一來,我們的服務(wù)器就可以運(yùn)行順暢,而人們?cè)谕嬗螒虻臅r(shí)候也可以更好的得心應(yīng)手,而且如果我們使用的是其他的兼容性較差的服務(wù)器,其實(shí)在使用的過程當(dāng)中也會(huì)存在更多的問題,所以為什么我們不選擇租用一些游戲的服務(wù)器呢?

游戲服務(wù)器該如何選擇

當(dāng)我們選擇租用游戲服務(wù)器的時(shí)候,我們就要考慮清楚價(jià)格的問題,如果我們購買了一整臺(tái)主機(jī),那么我們使用的時(shí)間或許是比較長的,但是誰又能保證它的質(zhì)量,就可以長時(shí)間的保持下去呢,所以在對(duì)比了以后,其實(shí)我們選擇一個(gè)服務(wù)器來進(jìn)行租用,就是比較好的一種選擇,因?yàn)槲覀冏饨鸩⒉皇欠浅5陌嘿F,而且相比較購買來說,這是比較劃算的一種方式,那這也就在無形之中為我們帶來了一種比較好的省錢方式,而且相比較我們?nèi)ベ徺I一整臺(tái)主機(jī)來說,這也是更好的方法,因?yàn)槲覀冑徺I了主機(jī),以后它的使用時(shí)間長了,那么需要運(yùn)行的內(nèi)存也就越來越大了,相應(yīng)的問題也就會(huì)出現(xiàn)。

但是如果我們選擇了一些租用的服務(wù)器,如果這一個(gè)服務(wù)器出現(xiàn)了問題,那我們就可以選擇其他的服務(wù)器,這是可以相互替換的,所以相比較而言,在價(jià)格以及實(shí)用性方面,我們都可以更好地選擇租用這一些游戲的服務(wù)器。所以游戲服務(wù)器該如何選擇,需要具備可擴(kuò)展性,特別是在這一個(gè)快速發(fā)展的商業(yè)世界當(dāng)中,業(yè)務(wù)的需求變化是非??斓?,而我們游戲的需求也是變化無窮,因此,很多的獨(dú)立服務(wù)器供應(yīng)商都是可以根據(jù)相應(yīng)的業(yè)務(wù)進(jìn)行資源的擴(kuò)充,當(dāng)然,我們只需要附加內(nèi)存,硬盤,或者是寬帶等等,有這一些資源就可以了,整個(gè)過程也是比較方便的。

【YINGSOO】提供高防VPS云主機(jī),香港服務(wù)器,高防云服務(wù)器,游戲服務(wù)器,高防服務(wù)器,香港站群服務(wù)器,高防服務(wù)器租用,高防服務(wù)器托管等,是一家大型專業(yè)的云服務(wù)提供平臺(tái)。

免責(zé)聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng),轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享,并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),也不構(gòu)成任何其他建議,文章內(nèi)容僅供參考。如果您發(fā)現(xiàn)網(wǎng)站上有侵犯您的知識(shí)產(chǎn)權(quán)的作品,請(qǐng)與我們?nèi)〉寐?lián)系,我們會(huì)及時(shí)修改或刪除。

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部