Java 如何在Microsoft Azure中扩展单个应用程序?

Java 如何在Microsoft Azure中扩展单个应用程序?,java,azure,cpu,load-balancing,Java,Azure,Cpu,Load Balancing,我相信这可以应用于任何应用程序,但在本例中,我指的是minecraft服务器(java)。偶尔服务器会收到CPU使用率的峰值,我想知道是否有可能与其他虚拟机共享此负载。当我遇到高CPU负载时,我希望能够在同一个云服务中启动另一个VM,然后共享CPU负载。这可能吗?我知道这是可用性设置背后的想法,我理解这在网站等方面是如何工作的,但不确定这如何应用,或者它是否可以应用于游戏服务器之类的东西,在游戏服务器上,应用程序一次只能在一台机器上运行。如果你的应用程序在一台服务器上运行,主要的选择是扩展到更大

我相信这可以应用于任何应用程序,但在本例中,我指的是minecraft服务器(java)。偶尔服务器会收到CPU使用率的峰值,我想知道是否有可能与其他虚拟机共享此负载。当我遇到高CPU负载时,我希望能够在同一个云服务中启动另一个VM,然后共享CPU负载。这可能吗?我知道这是可用性设置背后的想法,我理解这在网站等方面是如何工作的,但不确定这如何应用,或者它是否可以应用于游戏服务器之类的东西,在游戏服务器上,应用程序一次只能在一台机器上运行。

如果你的应用程序在一台服务器上运行,主要的选择是扩展到更大的VM。虽然我不太熟悉Minecraft是如何管理其玩家的:如果所有玩家都需要驻留在一台服务器(VM)上,那么在VM之间确实没有CPU共享的选项。您当前可以扩展到16核112GB的虚拟机,连接的存储容量最多为16TB


可用性集不会影响可伸缩性。它们的存在允许您拥有一组以高可用性(HA)模式运行的虚拟机,它们分布在不同的容错域(机架、网络、电源),当执行主机操作系统维护时,所述维护将在可用性集中的虚拟机实例之间交错,避免一次停机。

只是好奇:当您有其他更“Java友好”的选项(如OpenShift)时,为什么选择Azure来运行Java应用程序?()我有一个MSDN订阅,所以我每个月都可以获得免费的azure积分。Azure也是非常java友好的,所以不确定你的意思…@MarceloBezerra-我不确定你为什么选择在这里加入主观评论。Azure完全支持Java,无论是在标准Linux发行版、Oracle特定发行版还是Windows虚拟机中。此外,Azure API还提供了完整的Java SDK。这个问题是关于在Azure中扩展Minecraft的。纯粹的好奇(我想我即将发现Azure是托管Java应用程序的一个很好的选择,因为我将用Java测试它,到目前为止,我只为.net应用程序测试过它)。你不会以为我对Azure有什么“隐晦”的兴趣吧=DSo要使用可用性集,您必须在所有不同的虚拟机上复制数据(比如说网站)?但是,这些虚拟机如何保持数据的全天候同步?为什么要复制数据?如果这一切都是关于用户会话状态,那么将其存储在VM之外(内存缓存、数据库等)。如果需要公用文件,可以使用SMB共享或许多其他技术。可用性集与状态共享或数据共享无关。想象一下,您将如何解决两个或多个物理服务器的问题。同样的挑战也存在。可用性集旨在避免虚拟机同时脱机。