给定的体系结构是基于客户端-服务器的系统的示例。在这种情况下,有一个客户端向服务器发送请求,然后客户端从服务器接收响应,但是当用户/客户端数量增加时,服务器上的负载将大大增加,这使得服务器难以执行有效地,因此变得缓慢。因此,重要的是使服务器具有一定的可伸缩性,以使服务器容量根据流量的增加而增加,而不会发生任何故障。
缩放比例
可以将其定义为扩展现有配置(服务器/计算机)以处理大量用户请求或管理服务器上负载量的过程。此过程称为可伸缩性。可以通过增加当前系统配置(增加RAM,服务器数量)或为配置添加更多功能来实现。可伸缩性在系统设计中起着至关重要的作用,因为它有助于更有效,更快速地响应大量用户的请求。
有两种方法可以做到这一点 :
- 垂直缩放
- 水平缩放
垂直缩放
它定义为通过添加更多资源(例如内存,存储器等)以增加系统吞吐量来增加单台计算机容量的过程。没有添加新资源,而是使现有资源的功能更加有效。这称为垂直缩放。垂直缩放也称为放大方法。
示例: MySQL
垂直缩放的优点
- 易于实现
- 无需添加新资源,降低了软件成本
- 维护该单一系统所需的工作更少
垂直缩放的缺点
- 单点故障
- 由于系统(服务器)发生故障时,停机时间很长,因为我们只有一台服务器
- 硬件故障的高风险
垂直缩放的实时示例
当流量增加时,服务器的性能将下降。每个人拥有的第一个可能的解决方案是增加其系统的功能。例如,如果以前他们使用8 GB RAM和128 GB硬盘驱动器,但随着流量的增加,则系统的功能将受到影响。因此,可能的解决方案是增加现有的RAM或硬盘驱动器,例如可以将资源增加到16 GB的RAM和500 GB的硬盘,但这并不是最终的解决方案,因为一段时间之后,这些容量将达到饱和点。
水平缩放
它被定义为向现有资源池中添加更多相同类型的实例,并且不像在垂直扩展中那样增加现有资源的容量的过程。这种扩展还有助于减少服务器上的负载。这称为水平缩放
水平缩放也称为横向扩展方法。
在此过程中,服务器数量增加,而不是服务器的单个容量增加。这是在负载均衡器的帮助下完成的,负载均衡器基本上根据服务器的可用性将用户请求路由到其他服务器。从而,提高了系统的整体性能。这样,整个过程将分布在所有服务器之间,而不仅仅是依赖一台服务器。
示例: NoSQL,Cassandra和MongoDB
水平缩放的优点
- 容错意味着没有这种规模的单点故障,因为这里有5台服务器,而不是1台功能强大的服务器。因此,如果其中任何一台服务器出现故障,那么将有其他服务器进行备份。而在纵向扩展中,存在单点故障,即:如果服务器发生故障,则整个服务都将停止。
- 低延迟:延迟是指处理我们的请求的延迟或延迟时间。
- 内置备份
水平缩放的缺点
- 不容易实现,因为这种规模的组件很多
- 成本高
- 需要诸如路由器,负载均衡器之类的网络组件
水平缩放的实时示例
例如,如果存在一个容量为8 GB RAM的系统,并且将来需要一个16 GB RAM,而不是将8 GB RAM的容量增加到16 GB RAM,则实例为8 GB RAM可以用来满足要求。