【问题标题】:How can I scale a single application in Microsoft Azure?如何在 Microsoft Azure 中扩展单个应用程序?
【发布时间】:2014-06-17 23:46:37
【问题描述】:

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

【问题讨论】:

  • 只是好奇:当您有其他更“Java 友好”的选项(例如 OpenShift)时,为什么选择 Azure 来运行 Java 应用程序? (openshift.com/developers/java)
  • 我订阅了 MSDN,所以我每个月都会获得免费的 azure 信用额度。 Azure 对 Java 也很友好,所以不确定你的意思......
  • @MarceloBezerra - 我不确定你为什么选择在这里发表主观评论。 Azure 绝对支持 Java,无论是在标准 Linux 发行版、Oracle 特定发行版还是 Windows VM 中。此外,还有用于 Azure API 的完整 Java SDK。这个问题是关于在 Azure 中扩展 Minecraft。
  • 纯粹的好奇(我想我即将发现 Azure 可以成为托管 Java 应用程序的绝佳选择,因为我将使用 java 对其进行测试,我仅针对 .net 应用程序对其进行了测试到目前为止)。您不会认为我对 Azure 有一些“晦涩的”兴趣,是吗? =D

标签: java azure cpu load-balancing


【解决方案1】:

如果您的应用在单个服务器上运行,主要选择是将向上扩展到更大的 VM。虽然我不太熟悉 Minecraft 如何管理其玩家:如果所有玩家都需要驻留在单个服务器 (VM) 上,那么确实没有跨 VM 共享 CPU 的选项。目前,您最多可以扩展至 16 核、112GB 的虚拟机,并附带多达 16TB 的附加存储。

可用性集不会影响可扩展性。它们的存在是为了让您拥有一组在高可用性 (HA) 模式下运行的 VM,它们分布在不同的故障域(机架、网络、电源)中,并且在托管操作系统时执行维护时,所述维护将在可用性集中的虚拟机实例之间交错进行,从而避免一次性停机。

【讨论】:

  • 所以要使用可用性集,您必须在所有不同的虚拟机上复制数据(如果是网站的话)?但是,这些虚拟机如何保持 24/7 的数据同步呢?
  • 为什么要重复数据?如果它全部与用户会话状态有关,请将其存储在 VM 的外部(内存缓存、数据库等)。如果您需要公用文件,您可以使用 SMB 共享或许多其他技术。可用性集与状态共享或数据共享无关。想象一下您将如何解决两个或更多物理服务器的问题。同样的挑战也适用。可用性集旨在避免所有虚拟机同时脱机。
猜你喜欢
  • 1970-01-01
  • 2020-01-31
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 2020-02-20
  • 2021-06-29
  • 2015-05-23
相关资源
最近更新 更多