原文链接 https://www.baeldung.com/cs/scaling-horizontally-vertically
可扩展性(scalability)的衡量是以一个应用能够同时管理的客户端请求的数量为基准。
数据库的可扩展性是数据库能操作(manipulate)修改需求的能力。包括【新增数据】和【删除数据】。
水平扩展(horizontal scaling (or scaling out))
就是增加额外的服务器,加一个负载均衡器(load balancer )分发流量 。
垂直扩展(vertical scaling (also known as scale-up))
就是通过增加硬件(CPU,内存,磁盘,网卡等),提高机器的性能。
两者不同
垂直扩展 | 水平扩展 |
不修改逻辑单元(logical unit)的情况下,增加服务器硬件配置。 | 扩展实例(部署的应用)的数量,但不升级硬件环境。 |
代码不变,运行在更强大的设备上。 基于多核CPU,使用多线程完成并发。 | 顺序执行被分成小块,跨不同设备,完成并发。 |
通常使用Amazon RDS和MySQL。 | 使用MapReduce和Tuple Spaces等模式,管理员(administrators)可以在几个网络工作站(networked workstations)之间分配作业。 这种数据管理方法使用了MongoDB、Cassandra。 |
优缺点
垂直扩展 | 水平扩展 | |
数据 | 数据在一个节点(node)执行 | 数据被分区(partitioned),在多节点(node)执行。 |
数据管理 | 易管理 | 任务复杂 |
停机时间 | 只有一个机器,升级时需要停机。 | 多机器分流,不存在应用整体停机。 |
上限 | 取决于机器硬件的上限。 | 理论上可无限加机器,不存在上限。 |
费用 (我不知道这里他说的是什么费用。实际情况实际算。) | 使用/租用服务器?费用低 (Lower licensing fee) | 使用/租用服务器?费用高 (Higher licensing fee) |