游戲服務(wù)器池由Azure Batch管理,負(fù)責(zé)創(chuàng)建虛擬機(jī)和開放端口。每個(gè)地區(qū)都將有自己的游戲服務(wù)器池。
體系結(jié)構(gòu)關(guān)系圖
相關(guān)服務(wù)
Azure流量管理器-選擇此服務(wù)是因?yàn)樗梢愿鶕?jù)延遲情況將玩家連接到最合適的區(qū)域。
Azure Batch-它用于創(chuàng)建虛擬機(jī)和打開端口。選擇此服務(wù)是因?yàn)樗梢愿鶕?jù)您定義的參數(shù)自動(dòng)縮放池。
針對(duì)Azure流量管理器使用一個(gè)資源組,并針對(duì)每個(gè)區(qū)域虛擬機(jī)群集各使用一個(gè)資源組。
體系結(jié)構(gòu)注意事項(xiàng)
體系結(jié)構(gòu)會(huì)有一些不同,具體取決于虛擬機(jī)運(yùn)行的操作系統(tǒng)以及使用的是平臺(tái)映像還是自定義映像。
操作系統(tǒng)
Windows
要啟動(dòng)并運(yùn)行Windows Server虛擬機(jī)并準(zhǔn)備好安排計(jì)劃,所花費(fèi)的時(shí)間大約是Linux虛擬機(jī)的兩倍。
目前,Windows Server 2012的性能優(yōu)于Windows Server 2016。
值得一提的是,如果您已擁有有效的Windows本地部署許可證,可能不必支付該SKU的全部費(fèi)用。
Linux
啟動(dòng)并運(yùn)行Linux并準(zhǔn)備好安排計(jì)劃大約比Windows快兩倍。
平臺(tái)映像
平臺(tái)/市場(chǎng)映像
它們可使用安全修補(bǔ)程序進(jìn)行更新。我們?yōu)檫@些映像提供支持。
在長(zhǎng)期運(yùn)行的池上使用平臺(tái)映像的缺點(diǎn)在于,映像可能會(huì)被棄用并從存儲(chǔ)庫(kù)中刪除,并且池可能永遠(yuǎn)不能擴(kuò)展。
自定義映像
自定義映像的啟動(dòng)時(shí)間可能會(huì)有很大差別,具體取決于已提供源的自定義軟件和數(shù)據(jù)。
優(yōu)勢(shì)在于,您可以使用OSDisk中所有預(yù)安裝的軟件/數(shù)據(jù)來讓映像準(zhǔn)備就緒。
自定義映像源磁盤可以是以下三種類型之一:1.快照,2.Manageddisk,3.VHD。
目前,我們建議使用“快照”源磁盤。存儲(chǔ)有擴(kuò)展限制,Azure Batch一次性可擴(kuò)展的虛擬機(jī)數(shù)量不得超過2500臺(tái)。
容器
如果您已在Linux容器中將游戲容器化,可以使用預(yù)先制好的映像來運(yùn)行容器。請(qǐng)參閱在Azure Batch上運(yùn)行容器應(yīng)用程序,了解如何創(chuàng)建支持運(yùn)行容器任務(wù)的計(jì)算節(jié)點(diǎn)池,然后在池中運(yùn)行容器任務(wù)。
請(qǐng)查看此鏈接中記錄的microsoft-azure-batch發(fā)布者,了解可用的Linux映像。
部署模板
單擊下面的按鈕,將項(xiàng)目部署到您的Azure訂閱:
此操作將觸發(fā)模板部署,即系統(tǒng)會(huì)將BatchWithPoolDeploy.json ARM模板文件部署到您的Azure訂閱,從而創(chuàng)建必要的Azure資源。更確切地說:
創(chuàng)建一個(gè)Azure存儲(chǔ)帳戶。
創(chuàng)建一個(gè)與Azure存儲(chǔ)帳戶關(guān)聯(lián)的Azure Batch帳戶。
在D2s_v3 Windows Server 2016上創(chuàng)建一個(gè)包含5個(gè)節(jié)點(diǎn)(默認(rèn))的池。
該池具有一個(gè)空的開始任務(wù),可用于啟動(dòng)游戲服務(wù)器。
這可能會(huì)在您的Azure帳戶中產(chǎn)生相應(yīng)費(fèi)用。
請(qǐng)查看一般指南文檔,其中有一篇文章概述了Azure服務(wù)的命名規(guī)則和限制。
備注
如果您對(duì)ARM模板的工作原理感興趣,請(qǐng)參閱此參考體系結(jié)構(gòu)中使用的每個(gè)不同服務(wù)對(duì)應(yīng)的Azure資源管理器模板文檔:
Azure Batch池模板參考
分步操作
玩家的設(shè)備客戶端連接到Azure流量管理器,以傳送要查找游戲服務(wù)器的玩家請(qǐng)求。
Azure流量管理器連接到具有最低延遲的區(qū)域,并指向可獲取可用游戲服務(wù)器的Matchmaker。
Matchmaker包含選擇游戲服務(wù)器所需的所有信息,并且如果需要更多容量,它會(huì)主動(dòng)ping Azure Batch服務(wù)以開始橫向擴(kuò)展。
Azure Batch服務(wù)接收到該請(qǐng)求并開始橫向擴(kuò)展。如果設(shè)置了自動(dòng)縮放,它可能會(huì)根據(jù)已建立的規(guī)則主動(dòng)開始該流程。
游戲服務(wù)器會(huì)在游戲會(huì)話結(jié)束后且服務(wù)器可用時(shí),定期向Matchmaker發(fā)送狀態(tài)更新以及服務(wù)器的最新IP和端口。
每臺(tái)玩家設(shè)備都使用由Matchmaker提供的連接信息直接連接到游戲服務(wù)器。
游戲會(huì)話結(jié)束后,系統(tǒng)將存儲(chǔ)相關(guān)信息。
縮放
借助Azure Batch自動(dòng)縮放,服務(wù)會(huì)動(dòng)態(tài)地調(diào)整節(jié)點(diǎn),隨著任務(wù)需求的增加將節(jié)點(diǎn)添加到池,并隨著需求的減少而移除計(jì)算節(jié)點(diǎn)。
您可以在計(jì)算節(jié)點(diǎn)池上啟用自動(dòng)縮放,方法是將它與您定義的自動(dòng)縮放公式相關(guān)聯(lián)。Azure Batch服務(wù)會(huì)使用該自動(dòng)縮放公式來確定執(zhí)行工作負(fù)載所需的計(jì)算節(jié)點(diǎn)數(shù)。
您可以在創(chuàng)建池時(shí)或在現(xiàn)有池上啟用自動(dòng)縮放。您還可以在已配置為自動(dòng)縮放的池上更改現(xiàn)有公式。借助Azure Batch,您可以在將公式分配到池之前對(duì)它們進(jìn)行評(píng)估,并監(jiān)控自動(dòng)縮放的運(yùn)行狀態(tài)。
或者,您可以像本例中一樣,向Matchmaker分配任務(wù)來主動(dòng)告知Azure Batch何時(shí)橫向擴(kuò)展。
安全注意事項(xiàng)
當(dāng)您在虛擬網(wǎng)絡(luò)中包含Azure Batch虛擬機(jī)服務(wù)池時(shí),需要遵循一些要求。
其他資源和示例
Azure Batch Explorer:允許您與Azure Batch服務(wù)進(jìn)行交互的工具,以便在Azure Batch帳戶中查看、管理、監(jiān)控和調(diào)試實(shí)體。提供一張熱度地圖,用于查看所有運(yùn)行的虛擬機(jī)及其當(dāng)前狀態(tài),下面是地圖解讀方法:
白色方塊表示虛擬機(jī)處于空閑狀態(tài),可隨時(shí)接受一些工作。
黃色方塊表示虛擬機(jī)無法使用,因?yàn)樗鼈冋趩?dòng)或關(guān)閉。
綠色方塊表示虛擬機(jī)當(dāng)前正在運(yùn)行工作負(fù)載。
紅色方塊表示虛擬機(jī)處于故障狀態(tài)。
定價(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)用,總金額取決于將通過分析管道運(yùn)行的事件數(shù)。請(qǐng)參閱參考體系結(jié)構(gòu)中使用的每項(xiàng)服務(wù)的定價(jià)網(wǎng)頁(yè):
您還可以使用Azure定價(jià)計(jì)算器,以配置和估算您計(jì)劃使用的Azure服務(wù)的成本。