设置负载均衡(常见的负载均衡)

1. 常见的负载均衡

92tbb是网站域名。

TBB 获得过 17 届 Jolt Productivity Awards,是一套 C++ 模板库,和直接利用 OS API 写程序的 raw thread 比,在并行编程方面提供了适当的抽象,当然还包括更多其他内容,比如 task 概念,常用算法的成熟实现,自动负载均衡特性还有不绑定 CPU 数量的灵活的可扩展性等等。STL 之父,Alexander Stepanov 对此评价不错,他说“Threading Building Blocks… could become a basis for the concurrency dimension of the C++ standard library”。其他 TBB 的早期用户,包括 Autodesk,Sun,Red Hat, Turbo Linux 等亦然。现在 O’Reilly 已经出版了一本 Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism。

2. 常见的负载均衡算法有哪些

Application Request Route (文中简称为ARR)是一个寄宿于 IIS7(及以后的IIS 版本)的一个基于代理的模块,它可以通过判断Http Headers,Server Variables 以及负载均衡算法将HTTP的请求转发到不同的处理服务器之上

3. 常见的负载均衡系统

upstream 通过扩展健康检测插件可以剔除挂掉的服务实例,让其不参与负载均衡

4. 常见的负载均衡软件

DNS 实现负载均衡。

广义上的负载均衡器大概可以分为 3 类,包括:DNS 方式实现负载均衡、硬件负载均衡、软件负载均衡。

DNS 实现负载均衡是最基础简单的方式。一个域名通过 DNS 解析到多个 IP,每个 IP 对应不同的服务器实例,这样就完成了流量的调度,虽然没有使用常规的负载均衡器,但实现了简单的负载均衡功能。

5. 常见的负载均衡部署模式

早期的互联网应用,由于用户流量比较小,业务逻辑也比较简单,往往一个单服务器就能满足负载需求。随着现在互联网的流量越来越大,稍微好一点的系统,访问量就非常大了,并且系统功能也越来越复杂,那么单台服务器就算将性能优化得再好,也不能支撑这么大用户量的访问压力了,这个时候就需要使用多台机器,设计高性能的集群来应对。负载均衡方案的三种实现策略:

 

  一、多台服务器是如何去均衡流量、如何组成高性能的集群的呢?

  负载均衡(Load Balancer)是指把用户访问的流量,通过「负载均衡器」,根据某种转发的策略,均匀的分发到后端多台服务器上,后端的服务器可以独立的响应和处理请求,从而实现分散负载的效果。负载均衡技术提高了系统的服务能力,增强了应用的可用性。

  二、负载均衡方案有几种?

  目前市面上最常见的负载均衡技术方案主要有三种:

  1、基于DNS负载均衡

  2、基于硬件负载均衡

  3、基于软件负载均衡

  三种方案各有优劣,DNS负载均衡可以实现在地域上的流量均衡,硬件负载均衡主要用于大型服务器集群中的负载需求,而软件负载均衡大多是基于机器层面的流量均衡。在实际场景中,这三种是可以组合在一起使用。下面来详细讲讲:

  三、基于DNS负载均衡

  1、基于DNS来做负载均衡其实是一种最简单的实现方案,通过在DNS服务器上做一个简单配置即可

  其原理就是当用户访问域名的时候,会先向DNS服务器去解析域名对应的IP地址,这个时候我们可以让DNS服务器根据不同地理位置的用户返回不同的IP。比如南方的用户就返回我们在广州业务服务器的IP,北方的用户来访问的话,我就返回北京业务服务器所在的IP。

  在这个模式下,用户就相当于实现了按照「就近原则」将请求分流了,既减轻了单个集群的负载压力,也提升了用户的访问速度。

  使用DNS做负载均衡的方案,天然的优势就是配置简单,实现成本非常低,无需额外的开发和维护工作。

  但是也有一个明显的缺点是:当配置修改后,生效不及时。这个是由于DNS的特性导致的,DNS一般会有多级缓存,所以当我们修改了DNS配置之后,由于缓存的原因,会导致IP变更不及时,从而影响负载均衡的效果。

  另外,使用DNS做负载均衡的话,大多是基于地域或者干脆直接做IP轮询,没有更高级的路由策略,所以这也是DNS方案的局限所在。

  2、基于硬件负载均衡

  硬件的负载均衡那就比较牛逼了,比如大名鼎鼎的F5 Network Big-IP,也就是我们常说的F5,它是一个网络设备,你可以简单的理解成类似于网络交换机的东西,完全通过硬件来抗压力,性能是非常的好,每秒能处理的请求数达到百万级,即 几百万/秒 的负载,当然价格也就非常非常贵了,十几万到上百万人民币都有。

  因为这类设备一般用在大型互联网公司的流量入口最前端,以及政府、国企等不缺钱企业会去使用。一般的中小公司是不舍得用的。

  采用F5这类硬件做负载均衡的话,主要就是省心省事,买一台就搞定,性能强大,一般的业务不在话下。而且在负载均衡的算法方面还支持很多灵活的策略,同时还具有一些防火墙等安全功能。但是缺点也很明显,一个字:贵。

  3.基于软件负载均衡

  软件负载均衡是指使用软件的方式来分发和均衡流量。软件负载均衡,分为7层协议 和 4层协议。

  网络协议有七层,基于第四层传输层来做流量分发的方案称为4层负载均衡,例如LVS,而基于第七层应用层来做流量分发的称为7层负载均衡,例如Nginx。这两种在性能和灵活性上是有些区别的。

  基于4层的负载均衡性能要高一些,一般能达到 几十万/秒 的处理量,而基于7层的负载均衡处理量一般只在 几万/秒 。

  基于软件的负载均衡的特点也很明显,便宜。在正常的服务器上部署即可,无需额外采购,就是投入一点技术去优化优化即可,因此这种方式是互联网公司中用得最多的一种方式。

6. 常见的负载均衡器

  三相负载是有三相供电的设备而三个单相负载则是三台(个)单相设备。

  三相交流电源:指能够提供 3个频率相同而相位不同的电压或电流的电源,其中最常用的是三相交流发电机。由三个频率相同,幅值相等,相位互差120°的电压源(或电动势)组成的供电系统。三相交流电路:由三相交流电源供电的电路,称三相电路。

  单相交流电源:电路中只具有单一的交流电压,在电路中产生的电流,电压都以一定的频率随时间变化。比如在单个线圈的发电机或三相交流发电机中一个线圈提供的电源。由单相交流电源供电的电路,称单相电路。

  负载:指连接在电路中的电源两端的电子元件或把电能转换成其他能的装置。

  单相电路中的负载称为单相负载。在三相供电中采用一根相线一根零线给用电器提供电源做功。此设备就称为单相负载。

  三相电路中的负载称为三相负载。用三根相线给用电设备提供电源,使其做功,就叫三相负载。在三相负载里面又可以细分为三相平衡负载和三相不平衡负载。区别为:三相平衡负载其各相电流均比较近似。而三相不平衡负载各相电流差别很大。

  

  在三相供电中,三相不平衡不平衡电流会增加线路及变压器的铜损,还会增加变压器的铁损,降低变压器的出力甚至会影响变压器的安全运行,最终会造成三相电压的不平衡。所以,在 三相供电中,尽可能保持三相负载的平衡,是供电的重要工作内容之一。

  在三相供电中,当三个单相负载电流趋于一致时,可视为三相平衡负载。而一个三相负载的三相电流趋于不平衡时,可视为三个单相负载。由于保持三相负载的平衡,是供电的重要工作内容。所以在习惯上所说的三相负载,特指三相平衡负载。

  三相负载是有三相供电的设备而三个单相负载则是三台(个)单相设备。

7. 常见的负载均衡算法根据响应速度

负载均衡(Load Balance) 由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。

在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。负载均衡技术主要应用

1、DNS负载均衡 最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。

2、代理服务器负载均衡 使用代理服务器,可以将请求转发给内部的服务器,使用这种加速模式显然可以提升静态网页的访问速度。然而,也可以考虑这样一种技术,使用代理服务器将请求均匀转发给多台服务器,从而达到负载均衡的目的。

3、地址转换网关负载均衡 支持负载均衡的地址转换网关,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。

4、协议内部支持负载均衡 除了这三种负载均衡方式之外,有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力等,HTTP运行于TCP连接的最高层。

5、NAT负载均衡 NAT(Network Address Translation 网络地址转换)简单地说就是将一个IP地址转换为另一个IP地址,一般用于未经注册的内部地址与合法的、已获注册的Internet IP地址间进行转换。适用于解决Internet IP地址紧张、不想让网络外部知道内部网络结构等的场合下。

6、反向代理负载均衡 普通代理方式是代理内部网络用户访问internet上服务器的连接请求,客户端必须指定代理服务器,并将本来要直接发送到internet上服务器的连接请求发送给代理服务器处理。反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。反向代理负载均衡技术是把将来自internet上的连接请求以反向代理的方式动态地转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。

7、混合型负载均衡 在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,我们可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。我们将这种方式称之为混合型负载均衡。此种方式有时也用于单台均衡设备的性能不能满足大量连接请求的情况下。

8. 常见的负载均衡算法包括以下哪些

进行负荷计算时,应按下列原则计算设备功率:对于不同工作制的用电设备的额定功率应换算为统一的设备功率。整流器的设备功率是指额定交流输入功率。成组用电设备的设备功率,不应包括备用设备。当消防用电的计算有功功率大于火灾时可能同时切除一般电力、照明负荷计算有功功率,应按未切除的一般电力、照明负荷加上消防负荷计算低压总的设备功率、计算负荷。否则计算低压总负荷时,不应考虑消防负荷。当消防负荷中有与平时兼用的负荷时,该部分负荷也应计入一般电力、照明负荷。单相负荷应均衡分配到三相上,当单相负荷的总计算容量小于计算范围内三相对称负荷总计算容量的15%时,全部按三相对称负荷计算;当超过15%时,应将单相负荷换算为等效三相负荷,再与三相负荷相加。

9. 常见的负载均衡策略

  常见的有LVS、Nginx和HAProxy,者者介绍分别如下:  LVS:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感谢章文嵩博士为我们提供如此强大实用的开源软件。  LVS的特点是:  

1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;  

2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;  

3、工作稳定,自身有完整的双机热备方案;  

4、无流量,保证了均衡器IO的性能不会收到大流量的影响;  

5、应用范围比较广,可以对所有应用做负载均衡;  

6、软件本身不支持正则处理,不能做动静分离。  Nginx的特点是:  1、工作在网络的7层之上,可以针对http应用做一些分流的策略;  2、Nginx对网络的依赖非常小;  3、Nginx安装和配置比较简单,测试起来比较方便;  4、可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;  5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等;  6、Nginx仅能支持http和Email;   HAProxy的特点是:  1、HAProxy是支持虚拟主机的;  2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作;  3、支持url检测后端的服务器出问题的检测会有很好的帮助;  4、它跟LVS一样,本身仅仅就只是一款负载均衡软件;  5、HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS;  6、HAProxy的算法多;