簡體   English   中英

一個如何在AWS上擴展專用EC2實例?

[英]How does one scale dedicated EC2 instances on AWS?

我正在使用計划在AWS上托管的Kryonet(Java TCP / UDP網絡庫)在在線實時多人手機游戲上進行創建。

架構如下:客戶端連接到中央登錄/帳戶服務器,使他們可以登錄並查看其統計信息等。這一點很容易,因為它基本上只是一個REST API,並且可以按相當標准進行擴展方式(就像您使用任何webapp一樣)。

但是,更有趣的一點是玩家實際進行比賽時。 為此,我計划有一個單獨的“匹配”服務器(EC2)池。 登錄/帳戶服務器將配對兩個玩家,然后向客戶端發送特定比賽服務器的地址。 然后,玩家將加入該比賽服務器,該服務器將主持比賽(可能持續5-10分鍾)。 比賽服務器必須保持粘性,因為它將運行游戲的實時實例,並且將實時發送/接收UDP數據包。 每個比賽服務器將可能能夠主持數百場比賽。

我的問題是我應該如何擴展這些匹配服務器。 我想我將在啟動時讓它們在中央服務器上自動注冊,並發送某種類型的保持活動狀態。 我可以自己建造所有這些; 但是,我想知道AWS是否具有可以為我完成所有任務的工具/服務。

好的,我已經閱讀了一些有關AWS文檔的內容。 看來我可能可以達到以下目的:

每次將兩個玩家配對時,它們就會添加到隊列中。 當其中一台比賽服務器上有空位時,它們將從隊列中移出。 當此隊列的大小超過某個閾值時,將縮放EC2的數量。 基本上,所有這些都可以在AWS配置中完成: http : //docs.aws.amazon.com/autoscaling/latest/userguide/as-using-sqs-queue.html

然后,棘手的一點是按比例縮小實例。 與普通的REST API不同,您不能僅關閉服務器。 服務器需要完成其所有當前游戲。 看來,AWS的生命周期掛鈎也涵蓋了這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM