Trace Id is missing
跳到主内容

纵向扩展与横向扩展

云计算中的数据库可伸缩性简介

数据,数据无处不在 - 讨论可伸缩性时所讨论的内容

云计算中的可伸缩性是指能够快速轻松地增加或减少 IT 解决方案或资源的大小或能力。虽然可伸缩性一词可以指任何系统处理不断增长的工作的能力,但当我们讨论是要纵向扩展还是要横向扩展时,我们经常指的是数据库和数据。

新式应用的开发人员最看重数据库的可伸缩性。假设有一款新的应用非常畅销,需求从少数用户增长到全球数百万用户。帮助应用开发人员跟上需求并最大限度地减少停机时间的最重要功能之一就是有效地缩放。

这篇关于横向扩展与纵向扩展的讨论侧重于可伸缩性如何帮助我们适应和处理庞大的数据量、不断变化的数据量和不断变化的工作负载模式,所有这些都是从云、移动设备、社交媒体和大数据产生的。

一位女士正在进行演示,其他人坐在椅子上聆听

横向扩展与纵向扩展

在最基本的层面上,数据库可伸缩性可分为两种类型:

垂直缩放(纵向扩展或缩减):通过更改性能级别或使用弹性数据库池自动调整工作量需求,根据需要增加或减少计算能力或数据库。

水平缩放(横向扩展或缩减):使用一种称为分片的数据分区方法,添加更多数据库或将大型数据库划分为更小的节点,以便在各服务器之间更快、更轻松地管理。

垂直纵向扩展

当需要快速响应以修复使用经典数据库优化技术(如查询更改或索引)无法解决的性能问题时,可使用垂直缩放。如果当前性能水平无法满足所有需求,就可使用纵向扩展来处理高峰工作负载。纵向扩展可让你添加更多资源,以轻松处理高峰工作负载。然后,当你不再需要资源时,可纵向缩减回到原来的状态,从而节省云成本。

以下情况下可进行纵向扩展:

水平横向扩展

如果以最高的性能级别运作,资源仍不足以应付工作负载,应用开发人员就会开始考虑横向扩展或水平缩放。水平缩放时,数据会被分成跨服务器的多个数据库或分片,每个分片可以独立横向扩展或缩减。

分区数据如何提高可伸缩性? 当你通过添加虚拟机 (VM) 等资源来纵向扩展单一数据库时,最终会达到物理硬件限制。由于每个数据分区都托管在一个单独的服务器上,因此如果你将数据划分到多个分片,则几乎可以无限横向扩展系统。

某些类型的数据库技术(最知名的是非关系型或 NoSQL 数据库)在开发时纳入了独特的功能,能够通过数据库分片水平横向扩展数据,以处理大型、不相关、不确定或快速变化的数据。

而且,有些最初提供纵向扩展和缩减的服务的关系 (SQL) 数据库服务开始提供令人兴奋的选项,以匹配非关系型数据库的可伸缩性优势。超大规模服务(如 Microsoft Azure SQL 数据库超大规模 和 Azure Database for PostgreSQL 超大规模)使用户能够快速将存储纵向扩展至 100 TB,提供灵活的云原生体系结构,使存储能够根据需要增长,并在仅仅几分钟内实现几乎即时的备份和快速数据库还原。

以下情况下可进行横向扩展:

自动缩放

自动缩放是自动且动态地匹配资源以满足系统性能要求的过程。随着工作量增加,应用可能需要额外的资源才能保持必要的性能级别或满足不断增长的需求。如果需求放缓,不再需要额外资源,你可以通过提供自动服务来解除对未使用资源的分配,从而节省云支出。

自动缩放会充分利用云托管环境的弹性。它减少了系统操作员不断做出添加/删除资源或检查系统性能的决策的需要,从而减轻了管理开销。

虽然应用有两种主要的垂直或水平缩放方式,但自动化垂直缩放不太常见,因为纵向扩展往往需要在重新部署时使系统暂时不可用。

自动缩放在水平缩放时更为常见,因为进行横向扩展或缩减意味着仅添加或删除资源实例,并且你的应用在预配新资源时继续不间断地运行。如果需求下降,资源可以无缝关闭,无需停机和解除分配。

许多基于云的系统(如 Microsoft Azure)的提供商都支持自动水平缩放。

  • 数据库是任何相关信息的集合,这些信息被存储和组织起来,以便于管理和访问。随着新数据和数据类型以极快的速度生成,保持数据的组织性、可访问性和安全性成为一项挑战。包括一层管理工具的数据库管理系统 (DBMS) 通常用于处理大量数据。

    新的数据库类型和技术不断涌现,以适应云、移动设备、社交媒体和大数据产生的庞大数据量。

    详细了解数据库

  • NoSQL 数据库(通常被称为非关系型 SQL 或“不限于 SQL”)是一套多样化的数据库技术,处理数据存储和检索的方式与传统的关系 (SQL) 数据库不同。

    NoSQL 数据库不需要预先定义的架构,并且能够使用多个数据模型,使得它们在处理大量非结构化数据和缩放大数据数据库项目方面非常有效。

    详细了解 NoSQL 数据库

  • PostgreSQL 是可靠的开放源代码数据库,可处理关系型和非关系型查询,以其可靠性和数据完整性而闻名。PostgreSQL 广泛应用于金融服务、制造业、政府地理信息系统和 Web 技术等领域。开发人员使用 PostgreSQL 创建应用,而管理员则信任它来保护其数据。

    详细了解 PostgreSQL

  • 缓存是开发人员和 IT 专业人员用于提高系统性能和可伸缩性的常用技术。缓存会将经常访问的数据暂时复制到位于应用附近的快速存储中。如果这种快速数据存储比原始源更靠近应用,则缓存可以通过更快速提供数据,大幅改善客户端应用的响应时间。开发人员通常会设计应用来缓存已处理的数据,然后重新利用已缓存的数据来以比标准数据库查询更快的速度处理请求。

    详细了解缓存

  • 数据分片是一种水平数据分区,可将大型数据库划分为更小的数据库,从而更快、更轻松地跨服务器进行管理。

    详细了解数据库分片

  • 平台即服务(通常缩写为 PaaS)是来自云提供商的服务,为应用开发、测试、交付和管理提供按需环境。平台即服务使开发人员能够更简单快捷地创建 Web 或移动应用,而无需设置或管理作为开发人员所需的服务器、存储、网络和数据库的底层基础结构。

    详细了解 PaaS

通过 Azure 探索云可伸缩性

探索一种全面的纵向扩展和横向扩展方法,找出在本地、多云和边缘环境各方面都适合你自己的场景。Azure 数据库服务系列提供了完全托管的关系数据库、NoSQL 数据库和内存中数据库,覆盖专有引擎和开放源代码引擎,可满足现代应用开发人员的各种需求。

通过自动化基础结构管理(包括可伸缩性、可用性和安全性的自动化解决方案),可节省时间和资金。

人们正在讨论,笔记本电脑处于打开状态

相关产品和服务

Azure SQL

SQL 云数据库系列,该系列提供灵活的应用迁移、现代化和开发选项。

Azure Cosmos DB

快速的 NoSQL 数据库,具有适合任何规模的开放式 API。

Azure PostgreSQL

完全托管、智能且可缩放的 PostgreSQL。

Azure SQL 数据库

云中的智能托管 SQL。

Azure SQL 托管实例

在云中始终保持最新状态的托管 SQL 实例。

虚拟机上的 SQL Server

以最低的 TCO 将 SQL Server 工作负载迁移到云。

Azure Database for MySQL

完全托管的可缩放 MySQL 数据库。

Azure Maria DB

面向应用开发人员的托管 MariaDB 数据库服务。

Azure Cache for Redis

通过高吞吐量、低延迟的数据缓存来加速应用程序。

准备就绪后,即可开始设置免费帐户