采用应用程序开发的最佳做法
在本单元中,你将探讨使用 Azure Database for MySQL 灵活服务器开发应用时要应用的一些最佳做法,这有助于确保更好的性能、复原能力和安全性。 这些最佳做法包括:
- 并置资源。
- 实现连接池。
- 选择正确的应用容器大小。
- 实现网络隔离和 SSL 连接。
- 实现重试逻辑来管理暂时性故障。
- 为数据库选择正确的计算和存储大小。
这些最佳做法在使用 Azure Database for MySQL 灵活服务器开发应用的不同阶段发挥作用,如下图所示。
注意
此最佳做法列表并不详尽。 请务必参阅 Azure Database for MySQL 文档,获取有关实施与网络、安全、监视、性能优化、业务连续性和灾难恢复等相关的最佳做法的详细指南。
并置资源
将应用部署到 Azure 时,请确保所有资源依赖项都托管在同一区域中。 跨区域或可用性区域分发资源实例会造成网络延迟,这可能会影响应用的整体性能。
实现连接池
管理应用内的数据库连接会显著影响整体应用性能。 若要提高应用性能和复原能力,请考虑实现连接池以连接到 MySQL 灵活服务器。 连接池(如 ProxySQL)可以减少空闲连接的数量并重用现有连接。
提示
若要优化性能,请在关键代码路径中减少建立连接的次数以及建立这些连接所花费的时间。
选择正确的应用容器大小
由于为应用容器选择适当的大小至关重要,因此请确保应用有足够的计算和内存资源来处理预期的负载。 可以使用 JMeter 等工具来帮助进行负载测试,这有助于根据结果正确调整资源大小。
实现网络隔离和 SSL 连接
具有 VNet 集成(专用访问连接方法)的 Azure Database for MySQL 灵活服务器提供网络安全和隔离。 可以使用 VNet 集成来仅锁定对虚拟网络 (VNet) 基础结构的服务器访问。 专用终结点允许通过专用网络安全地连接到灵活服务器,同时避免暴露在公共 Internet 上,从而增强此安全性。 可以在单个 VNet 中或在相同或不同区域的不同 VNet 中保护应用和数据库资源(并与虚拟网络对等互连无缝连接)。
此外,还建议通过确保应用使用安全套接字层 (SSL) 连接到 MySQL 灵活服务器来保护传输中的数据。
实现重试逻辑以管理暂时性故障
由于云环境更有可能遇到网络连接中断或服务超时等暂时性故障,因此应确保应用实现处理这些故障的逻辑,通常是在延迟后重试请求。
最好在第一次重试前等待五秒。 然后,在后续的每次重试中将逐渐增加等待时间,最多不超过 60 秒。 在经过固定的重试次数后,应用可能会认定操作失败,并通知你可以进一步调查持续性错误。
为数据库选择正确的计算和存储大小
请务必正确分析工作负载并调整 MySQL 灵活服务器实例的大小,以便在应用性能和成本之间实现可接受的平衡。
计算
可以在三个计算层之一创建 MySQL 灵活服务器:可突发、常规用途和业务关键。 作为选择计算层的起点,请考虑下表中的详细信息。
计算层 | 目标工作负荷 |
---|---|
可突发 | 最适合不需要连续使用完整 CPU 的工作负载。 对于较小的 Web 应用和开发工作负载具有成本效益。 |
常规用途 | 最适合需要均衡的计算和内存以及可缩放的 I/O 吞吐量的大多数业务工作负载。 示例包括用于托管 Web 和移动应用的服务器以及其他企业应用。 |
业务关键 | 最适合需要内存中性能来实现更快的事务处理速度和更高的并发性的高性能数据库工作负载。 相关示例包括用于处理实时数据的服务器,以及高性能事务性应用或分析应用。 |
创建后还可以调整 MySQL 灵活服务器的大小,但只能在“常规用途”或“业务关键”层之间纵向扩展或纵向缩减。
存储
在存储方面,可以在接近存储容量限制时进行纵向扩展。 还可以启用存储自动增长功能,以确保服务在接近存储限制时自动缩放存储。
若要及时做出关于计算和存储的明智决策,请持续监视 Azure Monitor 关键指标,如主机 CPU 百分比、主机内存百分比、存储百分比、IO 百分比、活动连接等,或者设置警报,以便在解决方案接近部署限制时通知你。
调整 IOPS 以获得最佳性能
Azure Database for MySQL 灵活服务器中提供的重要增强功能是自动缩放 IOPS(每秒输入/输出操作数)功能,它对现有的预配 IOPS 功能进行了补充。 本部分探讨如何使用预配的 IOPS 和自动缩放 IOP 选项根据不同的工作负载要求优化数据库性能。
预先预配的 IOPS
可以使用预配的 IOPS 将特定数量的 IOPS 分配给数据库实例。 此功能对于需要一致且可预测的性能的工作负载至关重要。 通过设置定义的 IOPS 限制,可以确保数据库每秒可以处理一定数量的请求,从而保持稳定可靠的性能。 还可以随工作负载的变化灵活地调整预配的 IOPS 数,从而同时实现数据库性能的可伸缩性和精确控制。
自动缩放 IOPS
自动缩放 IOPS 可实现动态性能缩放,这是有效管理波动工作负载的基本功能。 启用此功能后,数据库服务器会根据实时需求自动调整 IOPS,而无需预配。 这种灵活性对于第 1 层任务关键型应用尤其有用,因为这些应用的性能需求会发生变化。
使用自动缩放 IOPS 功能的主要优势包括:
动态扩展:自动缩放 IOPS 功能会根据实际工作负载需求自动调整 IOPS 限制。 这种动态调整有助于确保数据库始终以最佳性能水平运行,而无需手动干预。
处理工作负载激增:此功能允许数据库无缝处理负载的突然增加,确保应用性能在高峰期保持一致。 此功能对于维护服务可用性和用户满意度至关重要。
成本效益:与预配的 IOPS 不同,无论实际使用情况如何,你都要为指定的限制付费,自动缩放 IOPS 可确保仅为实际使用的 I/O 操作付费。 这可以节省大量成本,尤其是对于具有可变 I/O 需求的数据库。
简化管理:自动缩放 IOPS 可以通过减少手动缩放和容量规划的需求来释放管理资源,使团队能够专注于更具战略性的计划,而不是日常维护。