欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

什么是负载均衡,为什么要做负载均衡?

程序员文章站 2023-11-13 23:40:34
1.背景介绍 随着 Internet 的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,特别是对数据 中心、大型企业以及门户网站等的访问,其访问流量甚至达到了 10Gb/s 的级别;同时,服务器网 站借助 HTTP、FTP、SMTP 等应用程序,为访问者提供了越来越丰富的内容和信息,服务 ......

1.背景介绍

随着 internet 的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,特别是对数据 中心、大型企业以及门户网站等的访问,其访问流量甚至达到了 10gb/s 的级别;同时,服务器网 站借助 http、ftp、smtp 等应用程序,为访问者提供了越来越丰富的内容和信息,服务器逐渐 被数据淹没;另外,大部分网站(尤其电子商务等网站)都需要提供不间断 24 小时服务,任何服 务中断或通信中的关键数据丢失都会造成直接的商业损失。所有这些都对应用服务提出了高性能和 高可靠性的需求。 但是,相对于网络技术的发展,服务器处理速度和内存访问速度的增长却远远低于网络带宽和应用 服务的增长,网络带宽增长的同时带来的用户数量的增长,也使得服务器资源消耗严重,因而服务 器成为了网络瓶颈。传统的单机模式,也往往成为网络故障点。

针对以上情况的解决方案:

(1) 服务器进行硬件升级:采用高性能服务器替换现有低性能服务器。 该方案的弊端:

高成本:高性能服务器价格昂贵,需要高额成本投入,而原有低性能服务器被闲置,造成资 源浪费。

可扩展性差:每一次业务量的提升,都将导致再一次硬件升级的高额成本投入,性能再卓越 的设备也无法满足当前业务量的发展趋势。

无法完全解决现在网络中面临的问题:如单点故障问题,服务器资源不够用问题等。

(2) 组建服务器集群,利用负载均衡技术在服务器集群间进行业务均衡。

该方案的优势: 低成本

可扩展性:当业务量增长时,系统可通过增加服务器来满足需求,且不影响已有业务,不降 低服务质量

高可靠性:单台服务器故障时,由负载均衡设备将后续业务转向其他服务器,不影响后续业 务提供,保证业务不中断。

2.知识剖析

负载均衡原理

系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。纵向扩展,是从单机的角度通过增加硬件处理能力,比如cpu处理能力,内存容量,磁盘等方面,实现服务器处理能力的提升,不能满足大型分布式系统(网站),大流量,高并发,海量数据的问题。因此需要采用横向扩展的方式,通过添加机器来满足大型网站服务的处理能力。比如:一台机器不能满足,则增加两台或者多台机器,共同承担访问压力。这就是典型的集群和负载均衡架构:如下图:

 

 
什么是负载均衡,为什么要做负载均衡?

应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。

负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。(一种把网络请求分散到一个服务器集群中的可用服务器上去的设备)

负载均衡的作用:

1.解决并发压力,提高应用处理性能(增加吞吐量,加强网络处理能力);

2.提供故障转移,实现高可用;

3.通过添加或减少服务器数量,提供网站伸缩性(扩展性);

4.安全防护;(负载均衡设备上做一些过滤,黑白名单等处理)

负载均衡分类:

根据实现技术不同,可分为dns负载均衡,http负载均衡,ip负载均衡,反向代理负载均衡、链路层负载均衡等。

负载均衡算法:

轮询、 随机、最少链接、hash(源地址散列)、加权

硬件负载均衡:

采用硬件的方式实现负载均衡,一般是单独的负载均衡服务器,价格昂贵,一般土豪级公司可以考虑,业界领先的有两款,f5和a10。

价格:f5, 15w~55w不等;a10, 55w-100w不等。

优点:功能全面支持各层级的负载均衡,支持全面的负载均衡算法,支持全局负载均衡。一般软件负载均衡支持到5万级并发已经很困难了,硬件负载均衡可以支持。商用硬件负载均衡稳定性高,具备防火墙,防ddos攻击等安全功能,提供售后支持。

3.常见问题

怎么配置负载均衡?

4.解决方案

1.部署至少两台服务器,我选择在本地部署一台jetty、一台tomcat。

2.在nginx.conf配置文件中http括号内添加如下配置:

upstream  local_tomcat {

server    localhost:8088;

server    localhost:8089;}

server{

location / {

proxy_pass http://local_tomcat;}}

3.在hosts文件中添加解析域名

127.0.0.1     local_tomcat

5.扩展思考

什么是反向代理负载均衡?

反向代理(reverse proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器,该服务器就可称之为代理服务器。由于代理服务器处在最终处理请求访问的服务器之前,因此可以在代理服务器上做负载均衡。