系统可扩展性:原理、成本与架构权衡
1. 规模对业务系统的影响
20 世纪 90 年代,互联网用户数量激增,为企业带来了新的在线盈利机会。企业纷纷通过网页浏览器向用户开放销售、服务等业务功能,这引发了我们对系统构建方式的深刻思考。
以一家零售银行为例,在提供在线服务之前,银行能够准确预测其业务系统的负载情况。因为可以明确银行内部使用系统的员工数量、连接到银行网络的终端/个人电脑数量、需要支持的自动取款机数量,以及与其他金融机构的连接数量和性质。基于这些信息,我们可以构建一个最多支持 3000 个并发用户的系统,并且确信这个数量不会被突破。而且业务增长相对缓慢,大部分时间(如非营业时间)的负载远低于峰值,这使得软件设计决策和硬件配置变得更加容易。
然而,当这家银行决定让 500 万客户都能使用网上银行服务时,情况就大不相同了。此时,最大负载是多少?业务日期间负载将如何分布?高峰时段是什么时候?如果开展限时促销活动以吸引新客户,又会发生什么?突然之间,原本相对简单且受限的业务系统环境被基于互联网的用户群体带来的更高平均和峰值负载以及不可预测性所打破。
2. 可扩展性的基本设计原则
扩展系统的基本目标是在特定应用维度上增加其容量。一个常见的维度是增加系统在给定时间段内能够处理的请求数量,即系统的吞吐量。我们可以通过一个类比来探讨扩展系统和提高吞吐量的两个基本原则:复制和优化。
2.1 复制原则
1932 年,悉尼海港大桥建成通车。可以合理推测,2021 年的交通流量比 1932 年有了显著增长。如果你在过去 30 年的高峰时段驾车通过这座桥,就会知道它的容量每天都被大大超出。为了增加桥梁等物理基础设
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



