使用 Azure Service Fabric 實(shí)現(xiàn)同步多人游戲

來源: Microsoft Azure
作者:Microsoft Azure
時(shí)間:2021-01-05
17817
在此示例中,游戲服務(wù)器池由Azure Service Fabric管理,負(fù)責(zé)創(chuàng)建和編排Azure虛擬機(jī)規(guī)模集。每個(gè)地區(qū)都將有自己的游戲服務(wù)器池。

在此示例中,游戲服務(wù)器池由Azure Service Fabric管理,負(fù)責(zé)創(chuàng)建和編排Azure虛擬機(jī)規(guī)模集。每個(gè)地區(qū)都將有自己的游戲服務(wù)器池。

體系結(jié)構(gòu)關(guān)系圖

multiplayer-sf-hosting.png

相關(guān)服務(wù)

Azure流量管理器-可根據(jù)延遲情況將玩家連接到最合適的區(qū)域。

Azure Service Fabric-可輕松地在容器中打包、部署和管理可縮放且可靠的游戲服務(wù)器。

部署模板

請(qǐng)參閱此存儲(chǔ)庫,其中包含可在設(shè)置群集時(shí)使用的可自定義的Service Fabric群集示例模板。此存儲(chǔ)庫根據(jù)我們看到的其他開發(fā)者創(chuàng)建的輸入和群集類型構(gòu)建而成,旨在提供各種模板。這些模板適用于Windows和Linux群集。

最基礎(chǔ)的入門模板是此模板。它支持部署運(yùn)行Windows Server 2016數(shù)據(jù)中心的安全的5節(jié)點(diǎn)、單節(jié)點(diǎn)類型Service Fabric群集,其容器位于Standard_D2_v2大小的虛擬機(jī)規(guī)模集上,已開啟Azure診斷并啟用網(wǎng)絡(luò)安全組。

單擊下面的按鈕,將項(xiàng)目部署到您的Azure訂閱:

azure-resource-manager-deploy-button.png

此操作將觸發(fā)模板部署,即系統(tǒng)會(huì)將azuredeploy.json ARM模板文件部署到您的Azure訂閱,從而創(chuàng)建必要的Azure資源。這可能會(huì)在您的Azure帳戶中產(chǎn)生相應(yīng)費(fèi)用。

請(qǐng)查看一般指南文檔,其中有一篇文章概述了Azure服務(wù)的命名規(guī)則和限制。

游戲服務(wù)器二進(jìn)制文件可存儲(chǔ)在Azure存儲(chǔ)中,也可存儲(chǔ)在Azure容器注冊(cè)表中,因?yàn)檫@兩者都能供Service Fabric使用。

分步操作

玩家的設(shè)備客戶端連接到Azure流量管理器,以傳送要查找游戲服務(wù)器的玩家請(qǐng)求。

Azure流量管理器連接到具有最低延遲的區(qū)域,并指向可獲取可用游戲服務(wù)器的Matchmaker。

Matchmaker包含選擇游戲服務(wù)器所需的所有信息,并且如果需要更多容量,它會(huì)主動(dòng)ping Azure Service Fabric服務(wù),以開始在特定的Service Fabric群集中橫向擴(kuò)展。

Azure Service Fabric服務(wù)收到該請(qǐng)求并開始橫向擴(kuò)展。如果設(shè)置了自動(dòng)縮放,它可能會(huì)根據(jù)已建立的規(guī)則主動(dòng)開始該流程。

游戲服務(wù)器會(huì)在游戲會(huì)話結(jié)束后且服務(wù)器再次可用時(shí),定期向Matchmaker發(fā)送狀態(tài)更新以及它的當(dāng)前IP地址和端口。

每臺(tái)玩家設(shè)備都使用Matchmaker提供的連接信息直接連接到游戲服務(wù)器。

(可選)在游戲會(huì)話結(jié)束后,相關(guān)信息可存儲(chǔ)在Azure存儲(chǔ)帳戶中。

縮放

主要有以下兩種方法:

Matchmaker不控制縮放。Azure Service Fabric擁有縮放要求,即使用Azure Service Fabric自動(dòng)縮放。在本例中,服務(wù)會(huì)根據(jù)游戲服務(wù)器所報(bào)告的負(fù)載或基于資源使用情況動(dòng)態(tài)縮放游戲服務(wù)器。自動(dòng)縮放提供出色的靈活性,支持按需預(yù)配游戲服務(wù)器的其他實(shí)例或分區(qū)。整個(gè)自動(dòng)縮放流程都是自動(dòng)化且透明的,只要您設(shè)置了策略,就無需在游戲服務(wù)器級(jí)別進(jìn)行手動(dòng)縮放操作。自動(dòng)縮放可在創(chuàng)建時(shí)打開,也可以隨時(shí)通過更新打開。

在負(fù)載會(huì)隨著時(shí)間的推移發(fā)生變化的情形中(例如在多人游戲中),通常會(huì)用到自動(dòng)縮放。

或者,如本例中所示,您可以向Matchmaker分配任務(wù)來主動(dòng)告知Azure Service Fabric何時(shí)橫向擴(kuò)展。最佳做法是使用池管理模式。

此模式為以下情形提供了解決方案:應(yīng)用程序要求能夠在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建Service Fabric服務(wù)實(shí)例,最主要是通過調(diào)用CreateServiceAsync進(jìn)行創(chuàng)建。它可讓您注冊(cè)應(yīng)該管理的服務(wù),并將確保已配置的可用服務(wù)實(shí)例數(shù)量在池中可用。

完成部署和初始化后,游戲只需調(diào)用管理器來“索要”一個(gè)服務(wù)實(shí)例,就會(huì)返回一個(gè)指向?qū)嵗闹羔?。可以使用該指針來返回游戲之前用過的由唯一ID確定的實(shí)例,或返回尚未分配的可用實(shí)例。如果有服務(wù)實(shí)例在一段時(shí)間內(nèi)處于空閑狀態(tài),管理器將停用它們,以在群集中打開更多容量。

使用此模式的主要優(yōu)勢(shì)是,在手動(dòng)實(shí)例化新實(shí)例時(shí)可大幅縮短游戲可能延遲的時(shí)間。

請(qǐng)參閱在Server Fabric中進(jìn)行縮放,了解如何構(gòu)建可縮放的游戲。

其他資源和示例

要成功管理Azure Service Fabric游戲和群集,建議執(zhí)行一些操作來優(yōu)化可靠性。請(qǐng)參閱本文檔,其中涵蓋安全性、網(wǎng)絡(luò)、基礎(chǔ)結(jié)構(gòu)即核心以及監(jiān)控等主題。

定價(jià)

如果您沒有Azure訂閱,可以創(chuàng)建免費(fèi)帳戶,開始使用12個(gè)月的免費(fèi)服務(wù)。除非您超出這些服務(wù)的使用限制,否則無需為Azure免費(fèi)帳戶中包含的這些免費(fèi)服務(wù)付費(fèi)。了解如何通過Azure門戶或使用情況文件查看服務(wù)使用情況。

您需要承擔(dān)運(yùn)行這些參考體系結(jié)構(gòu)時(shí)所使用的Azure服務(wù)的費(fèi)用??偨痤~將因使用情況而異。請(qǐng)參閱參考體系結(jié)構(gòu)中使用的每項(xiàng)服務(wù)的定價(jià)網(wǎng)頁:

Azure Service Fabric

Azure流量管理器

您還可以使用Azure定價(jià)計(jì)算器,以配置和估算您計(jì)劃使用的Azure服務(wù)的成本。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Microsoft Azure,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營(yíng)方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營(yíng)、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺(tái)的發(fā)展掀開了嶄新的一頁,突破了性能、云原生開發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺(tái),旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家