在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

游戲公司不使用微服務架構的原因

Linux愛好者 ? 來源:知乎 ? 2023-12-29 11:18 ? 次閱讀

背景介紹

筆者最近去面試了家游戲公司。

最近面試了一家游戲公司(滿大間的,有上市)

我問他,公司有沒有做微服務架構的打算及考量?

他很驚訝的說,我沒聽說過微服務耶,你可以解釋一下嗎?

我大概說了,方便測試,方便維護,方便升級,服務之間松耦合,可多語言開發,自動擴容…之類的點

然后他說游戲 server 不太需要微服務,因為要求 real time,做微服務會影響效能,分模組來開發就好了

我也不確定,但微服務不是趨勢嗎?特別是大公司,游戲 server 的服務應該很容易拆分吧?

回答

整理了幾個不錯的回答,分享一下。只能說學到了,技術也要用對場景呀!

陳宏基的回答

比如 moba 類游戲/王者榮耀/LOL,就看王者榮耀的客戶端吧,想象一下。

賬號系統,符文系統,英雄系統,皮膚系統,好友系統,好友之間 messaging,這些都是常規操作,如果流量足夠大,當然可以用微服務的架構去做。

不過這不是這個游戲的核心,核心是 MOBA:Multiplayer online battle arena。特性是什么?

10 個人之間各種游戲事件的高速多向通訊 streaming/broadcast/multicast/pubsub 各種通訊模式

所以游戲的核心在于小規模群體之間的高速網絡通信 。就是對方說的 realtime。多了一個 10ms 的延遲玩家就要罵娘了。

微服務為了把業務完美拆解,把原來的同一個進程里的模塊拆分成不同的服務,顯著增加額外的網絡開銷 。更別說什么 service mesh,各種 gateway,proxy,sidecar,簡直就是擔心延遲太低。

微服務基本只有 request/response 的模式。做不了 streaming?微服務通常要求應用是無狀態的才能做到水平擴展。streaming 本身就是加入了狀態

我可以想像,為了提高通訊的性能,一場英雄聯盟游戲很可能會使用同一個服務器負責這 10 個玩家之間的通訊,這樣就使得數據可以在本地交換,性能最大化 。這對客戶端或者說服務端統一網關的要求是必須支持 sticky routing。假設客戶端連接斷了,接下來的必須重連之前的同一個服務器。微服務的 stateless,水瓶擴展要求本身就是反 sticky routing 的,因為 sticky routing 本身就是狀態。

對服務端集群來說,同時有無數個王者榮耀的比賽在進行,每個都可以看成一個沙盒,每個沙盒都處于一個不同的狀態:塔被推了幾個了,你被殺了幾次了,對面幾個超神了,20 分鐘到了沒。這些都是長時間存在的狀態,直到游戲結束,服務端才可以清理一場游戲的狀態。

所以雖然不用把這些狀態寫進持久性存儲,但是必然會在內存中存在很長時間。都是狀態,反正有狀態,就別想用微服務。除非你說把這些狀態都移到 redis 里去,那么在服務器在信息流傳輸到一半還要做一個 remote request,一來一回,延遲就上升了??傊鯓佣疾缓?。(比如想象對方在 A 你的水晶,每一次 A 的操作都是一個 event,被 streaming 到服務端的沙盒中,沙盒中有一個流處理器,每次接收到一個你水晶被 A 的 event 都會計算一下你水晶爆了沒。這個計算需要極快,你是不可能把你水晶生命值的數據存在遠端的)

像這類游戲,都是對網絡,內存,CPU 的優化需求很高,整個游戲進行過程中,幾乎不存在什么 RPC call,真的需要 remote data,也應該是 prefetch,就是在游戲剛開始的時候加載好

微服務不是什么銀彈,也就是方便拆解一下原來的 CRUD 應用罷了而已,一沒觸及高級的交互方式,二沒觸及分布式系統真正的難點:狀態,其實沒有大家想的那么有用。之所以感覺上好像微服務改變了互聯網,只不過 90%的互聯網應用都只是簡單小規模的 CRUD 而已。

對方沒有聽說過微服務完全沒有問題,因為這本身就不是什么高深的概念,反而對方聽你一說一下就知道微服務不適合游戲,說明對方理解能力很強,對游戲系統設計也了解足夠深。

陳宏基的回答:

https://www.zhihu.com/question/359630395/answer/954452799

一位匿名用戶的回答

看來是是最近被 微服務洗腦了, 個人感覺正常微服務,一個服務必須有 3 個以上工程師單獨維護,才真真把微服務盤起來。

而且微服務現在最多就是 HTTP 這種協議跑,很占性能的,就算是走 TCP HTTP2 遠遠不如單體性能,尤其是微服務做業務分叉調用的時候怎么劃分,數據事件一致性 是非常頭痛的一件事。

微服務用的廣是 WEB 方面 而且工程師多,業務變來變多,而且它幾乎是自己玩自己的。這種場景就非常適合。實時性不需要那么高那種

我知道很多人,把微服務魔化了,別人要 100 層功力,而你只學到了 1 層。然后就硬搬上來跟別人說這很牛逼

我看過那么多博客,技術文,唯獨就微軟官方那一篇 微服務技術寫的最好,明確的告訴你這種架構適合什么樣的場景跟團隊,什么樣的場景不要用,而不是一些文章無腦吹

脫離業務的技術架構,就是為了框架而架構,就是沒事給自己搬石頭砸腳跟

對于開發者來說,自己去研究研究新技術是值的非常推崇的。但是不考慮實際情況,那就是魔怔了。

為啥有這種感觸,因為我是受害人。所以奉勸各位 什么樣的團隊項目底子業務 就選擇最合適自己的架構,不要盲目去跟風,更不要盲目的去對比大廠云云云,你的業務跟團隊是別人的零頭都不夠。別人的 HR 團隊可能都比你技術團隊人數多。

架構分的越單元化,那么需要的人數是翻倍起來維護的,不然你就會發現為什么這個架構我用起來這么啰嗦。不是別人的架構不夠好,是你的團隊還不需要

有小伙伴想找微軟的微服務架構鏈接 我放一下:

https://learn.microsoft.com/zh-cn/dotnet/architecture/microservices/multi-container-microservice-net-applications/microservice-application-design

liulilte 的回答

...游戲服務器都是幾乎都是帶大量狀態的,我就問你一個致命問題,游戲里面本來在同個進程內,內存直接可以訪問到,走微服務就可能這個服務不在本機設備上面,那就需要走網絡傳輸過去,那么你考慮過延遲問題嗎?有考慮過如果連接掛掉?

每個微服務跨本機都是一個 RPC 調用,這東西是不可靠的,如果你要可靠行啊,你準備約定一個接口調用多少毫秒超時重傳?200/500?(這就存在兩個情況:對面已經處理,對面沒有處理,但實際上是同一個調用請求)

如果玩家只是放一個技能,需要投射狀態呢,因為斷開重傳等幾百毫秒響應,那么玩家體驗是啥。

固然,我們可以使用協程,C++也可以,那么編碼復雜度有考慮過嗎?而且大量的異步編程在游戲服務器上面是很困難的,也就意味著需要更多的游戲服務器開發人員,而且還得要求開發人員的綜合素質不能太差。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1285

    瀏覽量

    70933
  • 服務器
    +關注

    關注

    13

    文章

    9727

    瀏覽量

    87424
  • HTTP
    +關注

    關注

    0

    文章

    523

    瀏覽量

    32534
  • 微服務架構
    +關注

    關注

    0

    文章

    26

    瀏覽量

    3069

原文標題:為什么游戲公司不使用微服務架構

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    微服務架構和CQRS架構基本概念介紹

    微服務架構現在很熱,到處可以看到各大互聯網公司微服務實踐的分享總結。但是,我今天的分享和微服務沒有關系,希望可以帶給大家一些新的東西。如果
    發表于 05-22 09:03

    微服務架構與實踐摘要

    本文主要類容是對微服務架構與實踐摘要解析。微服務架構中的 “微” 體現了其核心要素,即服務的微型化,就是每個
    的頭像 發表于 02-07 16:57 ?6334次閱讀
    <b class='flag-5'>微服務</b><b class='flag-5'>架構</b>與實踐摘要

    微服務優勢_微服務架構的好處與不足

    微服務是用一組小服務的方式來構建一個應用,服務獨立運行在不同的進程中,服務之間通過輕量的通訊機制(如RESTful接口)來交互,并且服務可以
    發表于 02-23 11:24 ?4514次閱讀

    什么是微服務架構_微服務架構的優缺點及應用

    什么是微服務架構 簡單地說,微服務是系統架構上的一種設計風格, 它的主旨是將一個原本獨立的系統拆分成多個小型服務,這些小型
    的頭像 發表于 06-02 10:03 ?1.8w次閱讀
    什么是<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>_<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>的優缺點及應用

    微服務架構有哪些_微服務架構設計模式

    小伙伴們知道常用的微服務架構框架有哪些嗎?上回我們介紹了一些常用的微服務架構設計模式,這次我們就來了解一下一些常用的微服務
    的頭像 發表于 05-17 17:06 ?2.9w次閱讀
    <b class='flag-5'>微服務</b><b class='flag-5'>架構</b>有哪些_<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>設計模式

    微服務架構的特點_微服務架構適用場景

     微服務架構是一項在云中部署應用和服務的新技術。
    的頭像 發表于 05-17 17:28 ?5448次閱讀

    微服務軟件架構應用研究綜述

    自2014年,微服務架構概念經Martin Flower提出以來,受到廣泛關注,為更好了解微服務架構風格,本文首先分析、梳理了軟件架構的發展
    發表于 05-26 09:26 ?2次下載

    王者榮耀為什么不使微服務架構?

    微服務為了把業務完美拆解,把原來的同一個進程里的模塊拆分成不同的服務,顯著增加額外的網絡開銷。更別說什么service mesh,各種gateway,proxy,sidecar,簡直就是擔心延遲太低。
    的頭像 發表于 12-12 15:46 ?596次閱讀

    微服務架構中的服務之間如何互相調用呢?

    微服務架構中,需要調用很多服務才能完成一項功能。服務之間如何互相調用就變成微服務架構中的一個關
    的頭像 發表于 01-31 09:46 ?2488次閱讀

    什么是微服務架構?

    在Medium,我們的技術堆棧始于2012年的單片Node.js應用程序。我們已經構建了幾個衛星服務,但我們還沒有制定一個系統地采用微服務架構的策略。隨著系統變得越來越復雜并且團隊不斷發展,我們在2018年初轉向了
    的頭像 發表于 02-24 11:15 ?1586次閱讀
    什么是<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>?

    從分層架構微服務架構介紹(五)

    本文要介紹的是 服務架構 (Service-Based Architecture, SBA )。 SBA 可以看成是單體架構微服務架構
    的頭像 發表于 05-10 17:02 ?1115次閱讀
    從分層<b class='flag-5'>架構</b>到<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>介紹(五)

    springcloud微服務架構

    Spring Cloud是一個開源的微服務架構框架,它提供了一系列工具和組件,用于構建和管理分布式系統中的微服務。它基于Spring框架,旨在通過簡化開發過程和降低系統復雜性來幫助開發人員構建彈性
    的頭像 發表于 11-23 09:24 ?1954次閱讀

    docker微服務架構實戰

    隨著云計算和容器化技術的快速發展,微服務架構在軟件開發領域中變得越來越流行。微服務架構將一個大型的軟件應用拆分成多個小型的、獨立部署的服務
    的頭像 發表于 11-23 09:26 ?863次閱讀

    設計微服務架構的原則

    微服務是一種軟件架構策略,有利于改善整體性能和可擴展性。你可能會想,我的團隊需不需要采用微服務,設計微服務架構有哪些原則?本文會給你一些靈感
    的頭像 發表于 11-26 08:05 ?865次閱讀
    設計<b class='flag-5'>微服務</b><b class='flag-5'>架構</b>的原則

    微服務架構與容器云的關系與區別

    微服務架構與容器云密切相關又有所區別。微服務將大型應用拆分為小型、獨立的服務,而容器云基于容器技術,為微服務提供構建、發布和運行的平臺。區別
    的頭像 發表于 10-21 17:28 ?508次閱讀
    主站蜘蛛池模板: 久久精品视频免费播放 | 久久老色鬼天天综合网观看 | 国产handjob手交在线播放 | 美女被免费视频的网站 | 五月激情丁香 | 一色屋成人免费精品网站 | 男女视频在线观看免费 | 欧美天天| 国产精品久久久精品三级 | 岛国毛片一级一级特级毛片 | 天天摸天天做天天爽天天弄 | 污视频18高清在线观看 | 日本黄色大片免费看 | 色媚网| 午夜影视网 | 亚洲色图狠狠干 | 日本三级成人中文字幕乱码 | 日本不卡专区 | 国产黄色大片网站 | 精品久久久久久中文字幕欧美 | 五月激情啪啪网 | 一级女性黄 色生活片 | 狠狠色丁香婷婷 | 4455ee日本高清免费观看 | 亚洲一区二区三区在线 | 国产精品臀控福利在线观看 | 欧美黄色免费看 | 日韩一卡2卡三卡4卡无卡网站 | 日本在线观看永久免费网站 | 一区二区三区免费精品视频 | 五月婷婷六月色 | 久久久久久免费观看 | 婷婷综合在线观看丁香 | 色多多a | 天天噜噜日日噜噜久久综合网 | 午夜一级福利 | 狠狠88综合久久久久综合网 | 国产成人精品高清在线 | 国产乱理论片在线观看理论 | 国产精品资源手机在线播放 | 国产在线97色永久免费视频 |