前端素材 设计元素 界面设计 网页素材 网站模板 按钮素材 名片素材 字体设计 图标设计 生活百科

可扩展性设计(一)相关概念

我们也可以把加机器得到的性能提升叫做横向扩展。

横向扩展(scale out)也叫水平扩展,指用更多的节点支撑更大量的请求。例如1台机器支撑10000TPS,两台机器是否能支撑20000TPS?

纵向扩展(scale up)也叫垂直扩展,扩展一个点的能力支撑更大的请求。通常通过提升硬件实现,例如把磁盘升级为SSD。

横向扩展通常是为了提升吞吐量,响应时间一般要求不受吞吐量影响即可。因为本身在访问量比较小的时候,响应时间就是可接受的范围,例如去分布式缓存get一条数据的响应时间在毫秒级,理想情况如图5-1所示,只要在吞吐量不断提升的情况下保持这个响应时间就可以。当然,响应时间和吞吐量在资源一定的情况下,通常是互斥关系,如果要降低响应时间,可以通过纵向扩展,提升单机能力,或者改变数据存储结构,压缩等方式。

AKF扩展立方体

提到可扩展性,就不得不提著名的AKF扩展立方体(Scalability Cube),AKF是ebay前副总裁Martin Abbott在《The Art of Scalability》一书中的经典理论,作者把系统在架构上的扩展性按照三个维度进行说明,如图5-2所示。 

下面我们通过表格5-1简单说明一下三个轴适用的场景、优势及挑战。

表格 5‑1 AKF扩展立方体

 

相关链接

发表评论