利用横向可伸缩性优势

Last reviewed 2026-10-27 UTC

Google Cloud Well-Architected Framework 可靠性核心中的这一原则提供了相关建议,可帮助您使用横向可伸缩性。通过使用横向可伸缩性,您可以帮助确保Google Cloud 中的工作负载能够高效扩缩并保持性能。

此原则与可靠性的范围界定重点领域相关。

原则概览

将系统重新架构为水平架构。为了适应流量或数据的增长,您可以添加更多资源。您还可以移除不使用的资源。

如需了解横向伸缩的价值,请考虑纵向伸缩的限制。

纵向伸缩的一个常见场景是将 MySQL 数据库用作包含关键数据的主数据库。随着数据库用量的增加,需要更多 RAM 和 CPU。最终,数据库会达到主机上的内存上限,需要进行升级。此过程可能需要重复多次。问题在于,数据库的增长量存在硬性限制。虚拟机大小并非无限制。数据库可能会达到无法再添加更多资源的程度。

即使资源不受限制,大型虚拟机也可能成为单点故障。主数据库虚拟机出现任何问题都可能导致错误响应或导致影响所有用户的系统级服务中断。避免单点故障,如通过资源冗余构建高可用性系统中所述。

除了这些伸缩限制之外,纵向伸缩往往成本更高。随着计算能力和内存容量更高的机器的购入,费用可能会呈指数级增长。

相比之下,横向伸缩的成本可能更低。在专为伸缩而设计的系统中,横向伸缩的潜力几乎是无限的。

建议

如需从单虚拟机架构过渡到横向多机器架构,您需要仔细规划并使用合适的工具。为了帮助您实现横向伸缩,请考虑以下小节中的建议。

使用托管式服务

托管式服务无需手动管理横向伸缩。例如,借助 Compute Engine 托管式实例组 (MIG),您可以添加或移除虚拟机,以横向扩缩应用。对于容器化应用,Cloud Run 是一个无服务器平台,可以根据传入流量自动扩缩无状态容器。

推行模块化设计

模块化组件和清晰的接口可帮助您根据需要伸缩单个组件,而不是伸缩整个应用。如需了解详情,请参阅性能优化支柱中的推广模块化设计。

实现无状态设计

将应用设计为无状态,即不存储本地数据。这样,您就可以添加或移除实例,而无需担心数据一致性。