aaaa成人_日本一道本在线视频_国产高潮流白浆喷水在线观看_韩国专区福利一区二区_一区二区不卡视频_看全色黄大色黄大片女图片第一次

×

網(wǎng)游服務(wù)器和Web服務(wù)器的區(qū)別

分類:云服務(wù)資訊 編輯: 瀏覽量:100
2021-07-10 13:41:15
??網(wǎng)游服務(wù)器租用商提供的服務(wù)器從幾百元到上萬(wàn)元的都有,所以在這里要提醒用戶朋友們?cè)谶x擇時(shí)千萬(wàn)不要被價(jià)格所左右,主要看兩點(diǎn)就行了,一是看用戶你這個(gè)網(wǎng)游的規(guī)模的大小,二是網(wǎng)游的競(jìng)爭(zhēng)情況。玩家規(guī)模的大小主要從網(wǎng)游服務(wù)器配置和帶寬兩個(gè)方面來(lái)考慮。當(dāng)然如果配置越高,服務(wù)器性能當(dāng)然也就越好,不用說(shuō)其價(jià)格相差也越大;帶寬是影響用戶體驗(yàn)的最重要的一個(gè)因素,帶寬的價(jià)格也隨著大小、獨(dú)享和共享、地區(qū)而不同。下面就由新網(wǎng)小編和大家講一講網(wǎng)游服務(wù)器和Web服務(wù)器的區(qū)別。

??一、Go語(yǔ)言的特點(diǎn)

??Go語(yǔ)言跟其他的語(yǔ)言例如Java比起來(lái),算得上一門很年輕的語(yǔ)言。Go語(yǔ)言是由Robert Griesemer、Rob Pike和Ken Thompson于2007年在Google開(kāi)發(fā)。并于2009年正式發(fā)布。

??Go語(yǔ)言的設(shè)計(jì)理念圍繞著簡(jiǎn)潔這兩個(gè)字,認(rèn)為少即是多。如果你熟悉Java,用Java那一套語(yǔ)法命名跟Go做對(duì)比,可以很明顯的體會(huì)到這種感覺(jué)。

??Go的特點(diǎn)可以簡(jiǎn)單的概括成以下幾個(gè)點(diǎn)。

??1、靜態(tài)類型和編譯型

??首先Go是靜態(tài)類型,靜態(tài)類型就是編譯時(shí)就知道每一個(gè)變量的類型,得益于此,在編譯的階段就能夠發(fā)現(xiàn)很多問(wèn)題。而如果是動(dòng)態(tài)語(yǔ)言,例如JavaScript,有些問(wèn)題直到運(yùn)行時(shí)才能發(fā)現(xiàn)。

??Go是編譯型語(yǔ)言,看到編譯型大家腦子里可能會(huì)想到另外一個(gè)詞解釋型。兩者的區(qū)別從字面上來(lái)理解其實(shí)已經(jīng)可以看出來(lái),我用一個(gè)簡(jiǎn)單的例子來(lái)類比一下。

??編譯型 去餐館吃飯,點(diǎn)了菜之后,飯店會(huì)等所有的菜做好了再上

??解釋型 去餐館吃飯,點(diǎn)了菜之后,陸陸續(xù)續(xù)的邊吃邊上

??2、跨平臺(tái)

??顧名思義,你寫的Go源碼在所有的系統(tǒng)都能夠運(yùn)行。

??這點(diǎn)其實(shí)很好理解,例如Java的口號(hào)是"Write once, run anywhere"。我們都知道Java是編譯型的語(yǔ)言,但是Java在編譯的時(shí)候生成的是字節(jié)碼,這個(gè)字節(jié)碼與當(dāng)前的操作系統(tǒng)無(wú)關(guān),與CPU也無(wú)關(guān)。

??這種字節(jié)碼必須依賴Java虛擬機(jī)才能運(yùn)行,而虛擬機(jī)會(huì)將操作系統(tǒng)和CPU之間的差異與用戶屏蔽。對(duì)于編程的人來(lái)說(shuō)這個(gè)過(guò)程其實(shí)無(wú)感知的。而對(duì)Java來(lái)說(shuō),語(yǔ)言本身的跨平臺(tái)并不能代表代碼可以跨平臺(tái)。

??Go的跨平臺(tái)從某種方面來(lái)說(shuō),與Java類型,我們需要安裝與當(dāng)前操作系統(tǒng)相對(duì)應(yīng)版本的Go。編譯出來(lái)的可執(zhí)行文件會(huì)根據(jù)操作系統(tǒng)的不同而有所不同。

??3、自動(dòng)垃圾回收

??與JVM一樣,Go在運(yùn)行時(shí)的內(nèi)存管理(GC)由Go語(yǔ)言本身來(lái)管理,不需要程序員的參與,但是我們可以干預(yù)。

??4、原生的并發(fā)編程

??何為原生?我們都知道,在Java中如果要實(shí)現(xiàn)并發(fā), 需要外部的類庫(kù)支持(Thread),而Go不需要從外部再引入任何依賴。支持使用關(guān)鍵字go即可。而且Java中是通過(guò)共享內(nèi)存進(jìn)行通信的,熟悉Go的應(yīng)該都看過(guò)一句話“不要通過(guò)共享內(nèi)存來(lái)通信,而應(yīng)該通過(guò)通信來(lái)共享內(nèi)存”

??二、用Go的優(yōu)勢(shì)

??先說(shuō)一下我對(duì)Go語(yǔ)言的看法,我認(rèn)為Go在服務(wù)器這塊是非常有優(yōu)勢(shì)的。以后如果有高并發(fā)的應(yīng)用場(chǎng)景,那么大概率這個(gè)服務(wù)就是用Go寫的。不知道大家有沒(méi)有發(fā)現(xiàn),摩爾定律正在失效。近十年內(nèi),硬件的原始處理能力都沒(méi)有太大的提升。顯然,一味的增加晶體管的數(shù)量已經(jīng)不是解決問(wèn)題最好的方法。

??NASA前不久發(fā)布到官網(wǎng)然后又迅速刪掉的文章透露了,Google可能已經(jīng)實(shí)現(xiàn)了量子霸權(quán),通俗一點(diǎn)說(shuō)就是擁有超越所有傳統(tǒng)計(jì)算機(jī)的計(jì)算能力。而放置更多的晶體管的代價(jià)也越來(lái)越高,所以現(xiàn)在廠商都在向處理器中添加更多的內(nèi)核來(lái)提升性能。

??就像大家熟悉的Java,雖然Java本身支持多線程,但是在Java上使用多線程編程代碼算是比較昂貴的。在Java中創(chuàng)建一個(gè)新的線程就會(huì)消耗接近1M左右的內(nèi)存。假如你真的需要支持運(yùn)行上千個(gè)線程,那么服務(wù)很可能運(yùn)行著就OOM了。除了內(nèi)存消耗外,還會(huì)存在由于支持多線程帶來(lái)的并發(fā)和死鎖等問(wèn)題。

??而Go中,使用協(xié)程來(lái)代替線程。而且一個(gè)協(xié)程所消耗的內(nèi)存比線程少了很多倍。同樣的物理設(shè)備限制,你可能只能啟動(dòng)最多幾千個(gè)線程,而協(xié)程能夠啟動(dòng)上百萬(wàn)個(gè)。而且不同的Goroutine可以通過(guò)信channel進(jìn)行安全的通信。

??三、游戲服務(wù)器和Web服務(wù)器的區(qū)別

??有些對(duì)游戲服務(wù)器的介紹可能會(huì)說(shuō),游戲服務(wù)器是一個(gè)需要長(zhǎng)期運(yùn)行的程序,然后怎么怎么樣。我個(gè)人認(rèn)為Web服務(wù)器一樣的需要長(zhǎng)期運(yùn)行,也需要響應(yīng)不定點(diǎn)不定時(shí)來(lái)自用戶的請(qǐng)求。兩者從宏觀上來(lái)看其實(shí)沒(méi)有本質(zhì)的區(qū)別。同時(shí)Web服務(wù)器也會(huì)對(duì)于穩(wěn)定性和性能有要求,游戲服一般分為大小服,我們這里都按照小服舉例子。

??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)存中,然后定期的寫入數(shù)據(jù)庫(kù)(落地)。

??換句話說(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)訪問(wèn)導(dǎo)致服務(wù)直接不可用的話,完全可以設(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)存。

??所以,對(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)重的線上事故。

??而對(duì)于Web服務(wù)器來(lái)說(shuō),如果是管理系統(tǒng)之類的,有可能會(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ù)是不可用的,其余的部分則可以正常的訪問(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很高的話,Web服務(wù)器同樣很需要注重性能,只不過(guò)游戲服務(wù)器需要一直特別注意這個(gè)方面。

??不過(guò)在Web,如果訪問(wèn)量很大的話導(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)樯暇€之后,如果遇到了數(shù)據(jù)不一致,維護(hù)的數(shù)據(jù)越少,修復(fù)數(shù)據(jù)的難度就越小。

??以上就是總結(jié)網(wǎng)游服務(wù)器和Web服務(wù)器兩者的區(qū)別。只是從大體上做了一個(gè)對(duì)比,并沒(méi)有具體深入細(xì)節(jié)。小伙伴們要想獲得更多網(wǎng)游服務(wù)器的內(nèi)容,請(qǐng)關(guān)注新網(wǎng)。

聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)

送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)

需注明出處:新網(wǎng)idc知識(shí)百科

免費(fèi)咨詢獲取折扣

Loading
主站蜘蛛池模板: 九一免费版在线观看 | 69精产国品一二三产品价格 | 国产免费一级大片 | 手机毛片网 | 久日av| 亚洲国产系列 | 久久人人玩人妻潮喷内射人人 | 国产麻豆精品精东影业AV网站 | xxxx交换夫妇com1 | 毛片三区 | 这里只有精品免费 | 在线播放精品视频 | 91精品国产色综合久久不卡98最新章节 | 刺激videoschina偷拍 | aⅴ小次郎改为av小四郎 | 久久久久久久98 | 伊人久久无码大香线蕉综合 | 亚洲AV网址在线 | 深夜福利免费 | 日韩欧美亚洲国产精品字幕久久久 | 美国精品一区二区 | 久操网在线视频 | 一区二区三区日本 | 九色蝌蚪自拍 | 伊人精品成人久久综合软件 | 久久久久久国产精品免费免费狐狸 | 日本精品一二三 | 一个人看的www视频免费播放 | 一区二区三区国产精华 | 人妻无码中文字幕永久在线 | 在线a网| 一本久久伊人热热精品中文 | 久久影院一区 | 欧美性猛交xxxx乱大交退制版 | 7788成人网站免费观看 | 欧美精品二区中文乱码字幕高清 | 亚色视频在线观看 | 国产在线观看第一页 | aaa一级毛片 | www.毛片网站| 午夜精品久久久久久久99无限制 |