zzijzzij亚洲日本少妇jizjiz,99久久99久久免费精品蜜桃,www.成色av久久成人,18video性欧美19sex,久久综合九色综合欧美亚洲

為用戶(hù)創(chuàng)造價(jià)值的開(kāi)發(fā)公司

始終追求工匠精神,是您靠譜的H5開(kāi)發(fā)、小程序開(kāi)發(fā)、微信開(kāi)發(fā)供應(yīng)商

藍(lán)暢首頁(yè) >> 動(dòng)態(tài)

Web網(wǎng)站服務(wù)器與游戲服務(wù)器的區(qū)別?

時(shí)間:2019-12-10 12:10:10 | 來(lái)源:

Web服務(wù)器與游戲服務(wù)器的區(qū)別:





1、狀態(tài)


首先要提到的就是狀態(tài)??赡苣銜?huì)聽(tīng)說(shuō)過(guò)一個(gè)概念,游戲服務(wù)器是有狀態(tài)的,而Web服務(wù)器是無(wú)狀態(tài)的。什么意思呢?Web服務(wù)器的數(shù)據(jù)流大多直接會(huì)到數(shù)據(jù)庫(kù)中。而游戲服務(wù)器的數(shù)據(jù)流首先會(huì)到內(nèi)存中,然后定期的寫(xiě)入數(shù)據(jù)庫(kù)(落地)。


換句話(huà)說(shuō),游戲服務(wù)器本身的數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)在運(yùn)行期間會(huì)存在一個(gè)數(shù)據(jù)不一致的窗口。如果此時(shí)游戲服務(wù)器宕機(jī)了,那么就會(huì)造成數(shù)據(jù)首先到的內(nèi)存數(shù)據(jù)與數(shù)據(jù)庫(kù)存的數(shù)據(jù)不一致。


而Web服務(wù)器則不會(huì)有這樣的問(wèn)題,Web所有的數(shù)據(jù)狀態(tài)都會(huì)落地,而且可以針對(duì)操作加上事務(wù),不用擔(dān)心因?yàn)椴僮魇《肱K數(shù)據(jù)。正因?yàn)橛辛藸顟B(tài)的約束,游戲服務(wù)器就會(huì)很慎重的使用內(nèi)存、CPU。以求在資源有限的情況下,最大化的提高的承載量,并且降低服務(wù)延遲。當(dāng)然,Web服務(wù)器會(huì)為了降低某個(gè)接口的響應(yīng)時(shí)間而去做對(duì)應(yīng)的優(yōu)化。



2、擴(kuò)容


在Web服務(wù)器中,如果你不能評(píng)估一個(gè)服務(wù)所面臨的壓力,又不想因?yàn)樗矔r(shí)的熱點(diǎn)訪(fǎng)問(wèn)導(dǎo)致服務(wù)直接不可用的話(huà),完全可以設(shè)置成自動(dòng)擴(kuò)容,因?yàn)槊總€(gè)服務(wù)只是單純的接收請(qǐng)求,然后處理請(qǐng)求、返回結(jié)果,不會(huì)將數(shù)據(jù)保存在服務(wù)器的內(nèi)存中。要有數(shù)據(jù)存到內(nèi)存,那也是在Redis中。而Redis數(shù)據(jù)丟失對(duì)數(shù)據(jù)的一致性基本沒(méi)有影響。


但是在游戲服務(wù)器這邊很難做到像Web那樣靈活。首先,數(shù)據(jù)的流向不是數(shù)據(jù)庫(kù),而是內(nèi)存。


舉個(gè)很簡(jiǎn)單的例子,玩家的主城被攻打著火了,如果有了自動(dòng)擴(kuò)容,很有可能在落地的窗口內(nèi),玩家再請(qǐng)求一次,請(qǐng)求到了另一個(gè)實(shí)例。主城又沒(méi)有著火了。因?yàn)閿?shù)據(jù)都會(huì)先存在內(nèi)存中。


再舉一個(gè)例子,玩家氪金買(mǎi)了一個(gè)禮包。然后退出游戲,落地窗口內(nèi)再次上線(xiàn)沒(méi)了。這就不是單純的數(shù)據(jù)問(wèn)題了,玩家這是花了真金白銀買(mǎi)的道具,突然就沒(méi)了,一兩個(gè)還好處理,如果多個(gè)玩家都出現(xiàn)這樣的問(wèn)題,那這就屬于嚴(yán)重的線(xiàn)上事故了。修復(fù)數(shù)據(jù)的工作量十分的大。


所以,對(duì)于一個(gè)游戲服務(wù)器,所能使用的內(nèi)存和CPU的資源是非常有限的,不像Web服務(wù)器可以不用花很大的代價(jià)做到橫向擴(kuò)展。這也就是為什么游戲服務(wù)器會(huì)十分十分的注重代碼的性能以及穩(wěn)定性。



3、穩(wěn)定


就像上面說(shuō)的例子,如果游戲服務(wù)器運(yùn)行中出了BUG,導(dǎo)致服務(wù)直接不可用,或者說(shuō)通過(guò)這個(gè)BUG刷到了大量的道具,將是一個(gè)非常嚴(yán)重的線(xiàn)上事故。


而對(duì)于Web服務(wù)器來(lái)說(shuō),如果是管理系統(tǒng)之類(lèi)的,有可能會(huì)有臟數(shù)據(jù)值得一提的是,臟數(shù)據(jù)對(duì)于Web來(lái)說(shuō),排查起來(lái)也是一件很頭疼的事情。如果沒(méi)有臟數(shù)據(jù),只是服務(wù)暫且不可用,而且如果用的是微服務(wù)架構(gòu),重啟服務(wù)的代價(jià)是相對(duì)來(lái)說(shuō)比較小的,只有正在重啟的服務(wù)的業(yè)務(wù)是不可用的,其余的部分則可以正常的訪(fǎng)問(wèn)。


而對(duì)于游戲服務(wù)器來(lái)說(shuō),服務(wù)器重啟影響的是全服的玩家。玩家在停服期間,甚至連游戲都進(jìn)不了,特別的影響玩家體驗(yàn)。而且,如果停服之前服務(wù)器的數(shù)據(jù)落地出現(xiàn)了問(wèn)題,服務(wù)重啟之后會(huì)將數(shù)據(jù)從數(shù)據(jù)庫(kù)load到內(nèi)存中,此時(shí)同樣會(huì)造成數(shù)據(jù)不一致的問(wèn)題。



4、性能


從我的經(jīng)驗(yàn)來(lái)看,在做Web服務(wù)器的時(shí)候,沒(méi)有為了減少GC的壓力,為了少占用內(nèi)存去做過(guò)多的優(yōu)化。當(dāng)然這是因?yàn)轫?xiàng)目本身的體量不大,如果QPS很高的話(huà),Web服務(wù)器同樣很需要注重性能,只不過(guò)游戲服務(wù)器需要一直特別注意這個(gè)方面。


不過(guò)在Web,如果訪(fǎng)問(wèn)量很大的話(huà)導(dǎo)致單個(gè)服務(wù)不能扛住壓力,大部分人首先想到的解決方案應(yīng)該就是搞多個(gè)實(shí)例,畢竟可以做到很輕松的橫向擴(kuò)展。


在游戲服務(wù)器里,會(huì)把服務(wù)器的資源看的相當(dāng)?shù)膶氋F。例如,能不落地的字段就絕對(duì)不要落地,某個(gè)字段的值可以通過(guò)已知的條件算出來(lái)的,就盡量不要定義在代碼里。不過(guò)這也要看具體情況權(quán)衡運(yùn)算量和調(diào)用的頻率。因?yàn)樯暇€(xiàn)之后,如果遇到了數(shù)據(jù)不一致,維護(hù)的數(shù)據(jù)越少,修復(fù)數(shù)據(jù)的難度就越小。



5、嚴(yán)謹(jǐn)


這一點(diǎn)上來(lái)說(shuō),我認(rèn)為是兩者都很關(guān)注的一個(gè)重點(diǎn)。只不過(guò),在游戲服務(wù)器的某些情況中,如果服務(wù)器拋出異?;蛘遬anic。其造成的后果會(huì)被游戲特殊的環(huán)境放大。


例如,召回你的在外部隊(duì)失敗了,那么部隊(duì)就會(huì)一直在外面且不可用。這跟在瀏覽器中點(diǎn)一個(gè)按鈕沒(méi)有反應(yīng)比起來(lái),影響相對(duì)較小。而且使用微服務(wù)架構(gòu),在修復(fù)問(wèn)題之后可以以很低的成本來(lái)重啟對(duì)應(yīng)的服務(wù),而游戲服務(wù)器中還要修復(fù)一次數(shù)據(jù)。


再舉一個(gè)很極端的例子,點(diǎn)擊商店,玩家要準(zhǔn)備氪金了。但是卻發(fā)現(xiàn)進(jìn)不了商店,也可能不能獲取商品列表。這些會(huì)直接影響到游戲的體驗(yàn),甚至收入。


而對(duì)于Web來(lái)說(shuō),服務(wù)器的穩(wěn)定性同樣很重要。不然根據(jù)業(yè)務(wù)的不同,造成后果的嚴(yán)重性也有可能不同。影響了用戶(hù)體驗(yàn),就會(huì)直接影響到產(chǎn)品的口碑。



6、數(shù)據(jù)傳輸格式


熟悉Web的都知道,數(shù)據(jù)傳輸格式是JSON。而在游戲服務(wù)器中是Protobuf,是由Google開(kāi)發(fā)的數(shù)據(jù)傳輸格式,與JSON類(lèi)似。Protobuf是二進(jìn)制的,二進(jìn)制數(shù)據(jù)量會(huì)比JSON更小一點(diǎn)。而且,如果傳輸?shù)淖侄问强罩?,就不?huì)被傳輸。而JSON如果是空值,一樣的也會(huì)被傳輸。


無(wú)論是在什么樣的環(huán)境中,舉個(gè)例子,Node.js和Java中,Protobuf的性能表現(xiàn)都比JSON好。在Java中,Protobuf甚至要比JSON快了接近80%。如果Java的服務(wù)之間通信有了性能瓶頸, 可以考慮服務(wù)之間使用RPC來(lái)通信。


但是凡事都具有兩面性。Protobuf的缺點(diǎn)仍然存在:


文檔較少 社區(qū)與JSON的對(duì)比起來(lái) 可讀性沒(méi)有JSON好


以上就是這兩個(gè)月以來(lái),總結(jié)的兩者的區(qū)別。只是從大體上做了一個(gè)對(duì)比,并沒(méi)有具體深入細(xì)節(jié)。細(xì)節(jié)的話(huà)有可能會(huì)在以后單獨(dú)的來(lái)介紹。




關(guān)于我們:


Infocode藍(lán)暢信息技術(shù)有限公司成功為多家世界財(cái)富500強(qiáng)企業(yè)以及其他著名品牌提供優(yōu)質(zhì)服務(wù),是您靠譜的互聯(lián)網(wǎng)開(kāi)發(fā)供應(yīng)商。

服務(wù)客戶(hù)遍及北京、上海、杭州、深圳、廣州、天津、青島、南京、寧波、蘇州、無(wú)錫、廈門(mén)、重慶、西安等大中型城市及地區(qū)    為您提供H5開(kāi)發(fā),小程序開(kāi)發(fā),H5外包,微信開(kāi)發(fā),H5商城開(kāi)發(fā),小程序商城開(kāi)發(fā),網(wǎng)站開(kāi)發(fā)外包,H5游戲開(kāi)發(fā),小程序開(kāi)發(fā)外包,小程序設(shè)計(jì)、APP開(kāi)發(fā)外包,UI設(shè)計(jì),SEO優(yōu)化,SEO外包,視頻后期制作等優(yōu)質(zhì)服務(wù)




本文地址:
更多內(nèi)容推薦:
專(zhuān)欄最新閱讀:
更多文章閱讀請(qǐng)至:技術(shù)專(zhuān)欄
Tips: 為您提供 微信開(kāi)發(fā)、H5開(kāi)發(fā)、微信小程序開(kāi)發(fā)、微信定制開(kāi)發(fā)、網(wǎng)站開(kāi)發(fā)、小程序商城開(kāi)發(fā)、SEO網(wǎng)站優(yōu)化、視頻后期制作等定制化開(kāi)發(fā)服務(wù)