负载均衡之起始篇

来源:互联网 发布:西部域名怎么解析 编辑:程序博客网 时间:2024/05/01 10:28

负载平衡简介
  
或许有些读者仍然对负载平衡这个名词感到陌生,那么我们就花一小段篇幅来讲解一下到底什么是负载平衡。
  
在一个大型网站中,在线用户有时可能有几千个甚至上万个之多。如果一个用户的请求需要服务使用0.02秒来处理,那么该服务实例每秒钟将只能处理50个这样的请求,每分钟也只能处理3000个。

如果该服务是一个用户非常常用的功能,如浏览网站的产品列表,那么很显然单个服务实例已经无法支持该网站的运营。在这种情况下,我们就需要对该服务进行扩容。
  
扩容主要分为Scale Up(纵向)和Scale Out(横向)两种,分别对应着增强单个服务的服务能力以及增强服务数量。在某些情况下,Scale Up是一个较为简单的操作,例如为该服务所在的服务器添加更大的内存。

但是任意一个服务器所能提供的能力实际上都受到其自身物理硬件能力的限制,尤其是具有越高性能的服务器其单位服务能力的价格越为昂贵,因此我们就需要使用Scale Out方式将工作量分摊到多个服务器之中:
这里写图片描述
就如上图所显示的那样,当服务器的负载过多而来不及处理的时候,服务器就处于一种过载的状态。在该状态的服务常常会出现响应速度慢甚至无响应的情况。而在执行了Scale Out之后,我们将会使用多个服务器同时处理用户的请求。在该解决方案中,我们需要使用一台特定的设备将这些请求分发到各个服务器。该设备会根据其内部所包含的请求分发逻辑来决定如何对这些请求进行分发,以避免出现单个服务器过载的情况。这些用来对请求进行分发的设备实际上就是负载平衡服务器。
  
当然,我们不会等到服务器真正过载了才去解决这个问题。在服务的日常运维中,我们在服务器的平均负载和峰值负载达到某个特定阈值时就需要考虑是否需要为相应服务进行扩容。
  
一旦一个服务使用了负载平衡系统,那么它将在高可用性以及扩展性上得到极大的增强。这也是我们使用负载平衡解决方案的最重要原因。例如对于一个拥有三台服务器的负载平衡系统,如果其中一台发生了故障,那么负载平衡服务器可以通过向各个服务发送心跳等方式得知它们的异常,进而不再向这个发生了故障的服务器分发任务:
这里写图片描述
而如果当前负载平衡系统中所负担的服务容量已经超过了阈值,那么我们可以简单地通过在负载平衡系统中添加服务器来解决这个问题:
这里写图片描述
这样,每个服务器所需要处理的任务就相对减少了,从而减轻了单个服务器的负担。

2 0
原创粉丝点击