五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

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

服務(wù)器房間:棋牌游戲服務(wù)器架構(gòu)設(shè)計(jì)

發(fā)布日期:2021-02-16 15:04 | 文章來(lái)源:YINGSOO

  【版權(quán)聲明】文章部分內(nèi)容來(lái)源于網(wǎng)絡(luò),僅供參考!若有服務(wù)器租用/托管相關(guān)問(wèn)題,請(qǐng)咨詢(xún)YINGSOO在線(xiàn)客服!良心推薦、按需選配,更簡(jiǎn)單、更高效、更劃算!

  【暢銷(xiāo)產(chǎn)品】香港云服務(wù)器價(jià)格 | 德國(guó)物理服務(wù)器價(jià)格 | 香港云服務(wù)器價(jià)格 | 法國(guó)云服務(wù)器價(jià)格

  【導(dǎo)購(gòu)指南】日本云服務(wù)器該如何選擇?這幾點(diǎn)要注意 | 什么是DDoS攻擊?如何防御DDoS攻擊?

服務(wù)器房間

  棋牌游戲服務(wù)器架構(gòu)設(shè)計(jì)

一,棋牌類(lèi)服務(wù)器的特點(diǎn)

  1,棋牌類(lèi)不分區(qū)不分服

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

  2,房間模式

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

  3,每個(gè)房間的操作必須是順[主機(jī)]序性

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

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

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

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

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

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

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

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

  三,棋牌游戲服務(wù)器系統(tǒng)架構(gòu)

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

  a,登陸

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

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

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

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

  e,查找加入房間

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

  f,游戲腳本調(diào)用

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

  3,后臺(tái)管理系統(tǒng)

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

  4,玩家同屏

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

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

  a,客戶(hù)端主動(dòng)拉取。

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

  b,服務(wù)器主動(dòng)推送

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

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

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

  5,數(shù)據(jù)同步和持久化

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

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

  c,如何保證更新的順序性

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

  d,一種快速簡(jiǎn)單的方法

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

  四,棋牌游戲服務(wù)器架構(gòu)

  1,登陸時(shí),客戶(hù)端首先向登陸的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ú)立出來(lái)。

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

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

  5,redis用來(lái)做共享緩存。

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

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

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

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

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

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

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

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

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

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

  

  怎樣將域名_云服務(wù)器的網(wǎng)站綁定

  最近有客戶(hù)問(wèn)小編,”我在買(mǎi)了云服務(wù)器,但是不會(huì)綁定域名怎么辦?“;還有客戶(hù)說(shuō):”我的域名是之前在**上購(gòu)買(mǎi)的,已經(jīng)備案過(guò)了,最近買(mǎi)了服務(wù)器ECS,并且選擇了的網(wǎng)站建設(shè)服務(wù),那么怎樣將域名與云服務(wù)器的網(wǎng)站綁定?“相信這是不少新手站長(zhǎng)的共同困惑,今天小編就來(lái)統(tǒng)一回復(fù)下。

  登錄購(gòu)買(mǎi)域名的網(wǎng)站[服務(wù)器韓國(guó)]后臺(tái),點(diǎn)擊”域名管理“,一般做的都是DNS解析,通常,域名的DNS都是默認(rèn)的服務(wù)商的DNS。然后添加服務(wù)商提供給我們空間的IP地址,一般是在一個(gè)IP段的范圍。做域名解析時(shí)域名輸入注意www與不帶www的區(qū)分,一般帶www和不帶www的域名都是需要解析,因?yàn)橥ㄟ^(guò)兩種方式都可以訪(fǎng)問(wèn)網(wǎng)站。然后輸入解析到的主機(jī)IP,點(diǎn)擊開(kāi)始解析即可完成域名解析。這樣域名與云服務(wù)器的網(wǎng)站就已經(jīng)綁定了。

  ps:在做域名與云服務(wù)器的網(wǎng)站[新加坡物理服務(wù)器]綁定操作時(shí),需要注意的是:你的域名必須實(shí)名認(rèn)證,你的網(wǎng)站必須備案。

  YINGSOO電話(huà):4006-303-752

  熱門(mén)文章:【入局聯(lián)通混改】【日本服務(wù)器問(wèn)題】【服務(wù)器內(nèi)存】【區(qū)塊鏈技術(shù)】【傳奇服務(wù)器在哪里租】【網(wǎng)站服務(wù)器托管】【網(wǎng)站暫停】【云視頻服務(wù)器架設(shè)】【北京idc機(jī)房bgp帶寬】【宿遷服務(wù)器】【刀塔傳奇app服務(wù)器】【美國(guó)vps試用7天】【服務(wù)器托管與租用哪個(gè)更好】【高防免備案服務(wù)器有什么優(yōu)勢(shì)】【服務(wù)器集群】【維護(hù)香港服務(wù)器的方法】【深圳電信機(jī)房租用】【云主機(jī)免費(fèi)使用】【抗投訴外貿(mào)服務(wù)器機(jī)房如何保障網(wǎng)站安全】【攻擊游戲】【海外服務(wù)器性能】【游戲網(wǎng)站】【企業(yè)云服務(wù)器】【云主機(jī)哪家好國(guó)內(nèi)】【3300G高防服務(wù)器】【高防御服務(wù)器】【區(qū)塊鏈服務(wù)器】【手機(jī)網(wǎng)絡(luò)代理軟件】【服務(wù)器產(chǎn)品】【香港機(jī)房托管

  獨(dú)享韓國(guó)云服務(wù)器,選知名品牌YINGSOO

  9年獨(dú)享韓國(guó)云服務(wù)器業(yè)務(wù)運(yùn)營(yíng)經(jīng)驗(yàn),1200家企業(yè)客戶(hù)共同選擇.韓國(guó)Korea Telecom機(jī)房核心合作伙伴,機(jī)房帶寬資源充足,到國(guó)內(nèi)速度平均在80ms左右.

  http://maisonbaluchon.cn/products/cloud-kr.html

  海外 云服務(wù)器 推薦_美國(guó)_日本_韓國(guó)精選線(xiàn)路,實(shí)時(shí)開(kāi)通

  海外 云服務(wù)器 推薦,YINGSOO,專(zhuān)業(yè)海外云服務(wù)器提供商,提供亞洲,歐美等全球范圍云服務(wù)器租用托管,1對(duì)1客服指導(dǎo),7x24小時(shí)保障,全球精選線(xiàn)路免費(fèi)試用

  http://maisonbaluchon.cn/

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

相關(guān)文章

實(shí)時(shí)開(kāi)通

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

免備案

全球線(xiàn)路精選!

全天候客戶(hù)服務(wù)

7x24全年不間斷在線(xiàn)

專(zhuān)屬顧問(wèn)服務(wù)

1對(duì)1客戶(hù)咨詢(xún)顧問(wèn)

在線(xiàn)
客服

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

客服
熱線(xiàn)

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

關(guān)注
微信

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