横向扩展会对 API 的性能产生积极影响。此方法涉及向您的基础架构中添加更多服务器并在这些服务器之间分配负载。因此,系统可以处理更多并发请求,从而缩短响应时间并提高整体性能。
除了性能优势之外,横向扩展还有助于提高系统的冗余性和可靠性。如果一台服务器发生故障,则负载均衡器会将流量转移到其余能够进行无缝接管的服务器上,从而确保持续运行。这符合 API 安全最佳实践,并且能够增强系统抵御潜在故障的恢复能力。
了解我们在中国开展业务的承诺。 阅读全文
产品
安全性
发现并监控 API 行为以应对威胁和滥用
保护 Web 应用程序和 API 免遭 DDoS、爬虫程序和 OWASP 十大漏洞的攻击
为混合环境中的 LLM 和现代应用程序提供 AI 安全防护
Client-Side Protection & Compliance
协助实现 PCI 合规性,防范客户端攻击
单个 Zero Trust 平台即可实现覆盖、监测和精细控制。
Akamai Guardicore Segmentation
通过细化、灵活的分段来抵御风险
主动抵御零日恶意软件和网络钓鱼
通过主动威胁搜寻,让难以察觉的威胁无处藏身
基于身份和背景进行细粒度的应用程序访问控制
借助可以防范网络钓鱼的 MFA,加强对帐户接管攻击和数据泄露的防御
抵御帐户滥用,推动数字化业务发展
阻止内容抓取爬虫程序,保护知识产权并提高转化率
检测并抵御仿冒品牌的欺诈性行为
保留您想要的爬虫程序,抵御不想要的爬虫程序
外部权威解决方案,为您的 DNS 基础架构保驾护航
保护您的基础架构免遭分布式拒绝服务攻击
提升基于 IP 的应用程序的网络性能和安全性
利用监测功能、专家见解和修复功能,增强 DNS 安全性。
云计算
内容交付
在接近用户的边缘位置执行自定义 JavaScript,以优化用户体验
位于边缘的分布式键值存储数据库
为使用各种不同设备的用户自动优化图像和视频
在边缘运行的预定义应用程序,用于满足特定业务需求
使用高效缓存层,改善源站分载
利用智能负载均衡来优化性能
提供低延迟数据馈送以实现监控,并将数据摄取到第三方工具中
实时衡量真实用户体验对业务的影响
全球范围内开展站点和应用程序负载测试
解决方案
应用场景
为您的业务保驾护航并降低合规的复杂性
通过限制恶意软件侵入并阻止横向移动来抵御攻击
借助端到端保护方案,建立信任并推动发展
确保服务和应用程序的响应性、恢复能力和安全性
通过解决方案即可实现全面覆盖、监测和控制
保护您的基础架构免遭 DDoS 和 DNS 攻击
遏制帐户滥用、复杂爬虫程序攻击和品牌仿冒
为什么选择 Akamai
资源
合作伙伴
寻找合作伙伴
了解我们卓越的合作伙伴生态系统
寻找渠道或技术合作伙伴
横向扩展是将更多机器添加到系统中来分散负载。纵向扩展是升级单台机器的 CPU、RAM 和存储。具体选择取决于系统架构和应用程序需求。
对应用程序编程接口 (API) 的需求通常并非一成不变。它会随着时间的推移而上下波动。在某些情况下(例如,假日季的流量激增),API 需要处理的请求量可能远高于其他时间段。为了应对流量的增加,有必要扩大 API 的使用规模。扩展 API 时,系统管理员有两种选择。他们可以采用横向扩展,即向集群中添加更多 API 实例;也可以采用纵向扩展,即提升支持 API 的机器的计算能力。本文探讨了两者之间的区别以及哪一种方法最适合 API 可扩展性。
横向扩展(也称为“扩容”)是部署额外的虚拟机 (VM) 以增加 API 容量来处理更多负载的过程。(缩减容量称为“缩容”。)随着所需容量的增加,系统管理员可以向集群中添加更多虚拟机。但是,需要使用专门的资源管理软件来管理 API 调用的负载,将它们路由到集群中正确的虚拟机实例并保持平衡。
纵向扩展是向单个节点中添加资源的过程。它与用于增加节点的横向扩展形成鲜明对比。纵向扩展(也称为纵向扩容或缩容)意味着向服务器中增加中央处理单元 (CPU) 容量、内存或存储等资源。对于 API,纵向扩展通常是指增加托管该 API 的虚拟机的计算能力。
例如,如果某个 API 托管在分配有一个 CPU 核心和 512 MB 随机存取存储器 (RAM) 的虚拟机上,则对 API 进行纵向扩展可能意味着将核心数量和 RAM 增加一倍。该 API 将拥有两个专用 CPU 处理器内核和 1,024 MB 的 RAM。通过采用这种新配置,该 API 应该能够处理大约两倍的负载,但网络带宽、存储速度和其他因素的限制可能会削弱纵向扩展的效果。纵向扩展也存在资源管理方面的挑战,但专用软件通常可以处理此问题。
API 通常设计为无状态,这意味着它们不会在会话之间存储请求数据或保留信息。在考虑扩展方法时,这种无状态性质至关重要。无状态 API 不需要跨实例复制数据,因而使横向扩展更高效且更易于实施。系统管理员可以根据需要添加或移除虚拟机,同时不会影响 API 运行,因为 API 客户端的运行不依赖于特定的服务器实例。
有状态本身并无不妥。实际上,它对于应用程序的预期运行可能至关重要。但是,对有状态应用程序执行横向扩展要复杂得多。进行横向扩展需要将所存储的数据从应用程序的原始版本复制到新的实例中。
相比之下,无状态应用程序或 API 不会存储请求数据。它不会在内存中保留会话数据。每次会话开始时,就好像是该应用程序第一次与客户端见面。该会话结束后就是“再见”,而不会保留任何关于该会话的记忆。
可以对无状态应用程序进行横向扩展,因为由哪个虚拟机对 API 调用作出响应并不重要。API 客户端可以调用无限数量的托管该 API 的虚拟机,这完全不是问题。系统管理员可以根据自己的需要添加或移除任意数量的虚拟机,同时不会影响 API 的运行。
由于 API 是无状态的,因此横向扩展成为扩展 API 的正确方式。对于无状态 API,通过添加更多虚拟机来增加容量非常有效。管理员可以创建随着 API 需求增长而扩展的虚拟机集群。
此外,虽然纵向扩展 API 是可行的,但横向扩展更可取,因为纵向扩展中的资源分配问题导致其相对难以实现。相比之下,可以轻松对 API 进行横向自动扩展。当系统管理工具检测到 API 流量激增时,它们可自动添加虚拟机以在集群中托管更多的 API 实例。在纵向扩展情况下,这要困难得多,因为自动扩展在纵向扩展中效果不佳。
随着时间的推移,对 API 的需求将不可避免地发生变化。增加或缩减 API 容量必不可少。对于 API,横向扩展和纵向扩展都是可用选项。但是,API 具有无状态性质,再加上横向自动扩展相对更加容易,这使得横向扩展成为扩展 API 的正确方法。
在分布式系统中,API 是微服务架构的一部分,横向扩展尤为有利。每项微服务都可以根据其特定负载和要求进行独立扩展。此模块化方法可以更高效地利用资源并具备更出色的容错能力,因为一项微服务发生故障不会影响其他微服务。
此外,在微服务架构中,横向扩展符合分布式系统的原则,在这些系统中不同的服务部署在多个节点上。这可以确保系统能够处理不同的负载,并且即使在高峰时段也能保持最佳性能。
在扩展 API 时,停机是一个关键问题,因为任何服务中断都会导致收入损失和客户不满。横向扩展使系统管理员能够在不影响 API 可用性的情况下添加或移除服务器,从而最大限度地减少停机时间。相比之下,纵向扩展可能需要重启服务器或暂时使服务器脱机,这可能会中断服务。
API 提供商可利用横向扩展来确保持续运行,尤其是在计划维护或意外流量高峰期间。通过将负载分配到多个服务器上,横向扩展可确保 API 快速响应并持续可用,即使有个别服务器需要离线进行升级或维修也是如此。
横向扩展会对 API 的性能产生积极影响。此方法涉及向您的基础架构中添加更多服务器并在这些服务器之间分配负载。因此,系统可以处理更多并发请求,从而缩短响应时间并提高整体性能。
除了性能优势之外,横向扩展还有助于提高系统的冗余性和可靠性。如果一台服务器发生故障,则负载均衡器会将流量转移到其余能够进行无缝接管的服务器上,从而确保持续运行。这符合 API 安全最佳实践,并且能够增强系统抵御潜在故障的恢复能力。
纵向扩展涉及升级单个服务器的资源以增强其性能。这可以提高 API 请求的处理速度,因为功能更强大的服务器可以处理更高的负载。但是,必须注意的是,纵向扩展可能会带来收益递减。单台机器的升级次数是有限制的。超过某个临界点后,性能提升可能与投入不成正比。
在考虑采用横向扩展还是纵向扩展时,权衡潜在收益与风险至关重要。需要牢记 REST API 安全隐患等问题,并确保系统能够保持对故障的恢复能力。
了解横向扩展与纵向扩展之间的区别非常重要,这有助于确定何时采用哪种扩展方式。
在以下情况下,可以使用纵向扩展:
在以下情况下,可以使用横向扩展:
横向扩展与纵向扩展的成本效益取决于应用程序的特定要求、部署规模和整体需求等因素。纵向扩展通常更具成本效益,因为您在扩展时只需购买一两个新组件。但是,当您接近服务器的容量限制时,此方式的成本效益便会降低。
Akamai 是一家致力于支持并保护在线商业活动的网络安全和云计算公司。我们卓越的安全解决方案、出色的威胁情报和全球运营团队可提供深度防御,保护各地的企业数据和应用程序。Akamai 的全栈云计算解决方案可在海外分布广泛的平台上提供高性能且经济实惠的服务。众多全球企业信赖 Akamai,凭借我们卓越的可靠性、扩展性和专业技术,企业能够从容拓展业务。