无线局域网中的负载均衡问题
在网络应用过程中,我们经常能听到负载均衡这个词,那么什么是负载均衡呢?在有线分布式系统中,负载均衡是指将网络的外部服务请求均匀分配到多台后端的服务器上,从而提高网络服务质量的方法。
我们都知道,由于外部网络任务到达的随机性,以及各处理节点处理能力上的差异,当分布式系统运行一段时间后,某些节点分配的任务还很多(称之为超载),而另一些节点却是空闲的(称之为轻载)。一方面,使超载节点上的任务尽可能快地完成是当务之急;另一方面,某些节点轻载是一种浪费。如何避免这种忙与空闲并存情况的发生,从而有效地提高系统的资源利用率,减少任务的平均响应时间。这是负载均衡需要解决的问题。
简单的来说,负载均衡问题是对任务的优化组合问题。有线分布式系统中的负载均衡方法操作的对象是任务。其的基本途径就是收集负载信息,进行相关算法决策,对分配给各节点的任务进行重新调度如进程迁移或任务迁移。
无线局域网中的负载均衡面临比有线网络更多的困难。随着无线局域网中扩展服务集中的终端的移动和无线信道的时变,各个接入点(AP)上的负载出现差异。负载均衡的作用就是平衡各个AP的差异,以达到化的网络资源利用。
其实,负载均衡是无线资源管理的重点,IEEE的80211工作组的TGv任务组,专门负责解决无线局域网的负载均衡问题。
下面,我们主要来探讨下无线局域网中的负载均衡,
无线局域网中的负载均衡与有线分布式系统中的负载均衡不同,表现在负载均衡控制的对象和控制方式上。由于无线终端的移动性和无线信道的时变性,无线局域网中的负载均衡面临的情况更加复杂。
无线局域网(WLAN)是指应用无线通信技术将计算机设备互联起来,构成的可以互相通信和实现资源共享的网络体系。在无线局域网中有两种角色:AP和终端(STA)。AP作为固定基础设备,通过有线分布式系统互连。STA作为移动终端,接受AP提供的接入服务。
负载不均衡形式一:无线AP连接的终端的个数不均衡
终端通过扫描信道,获取所处WLAN环境中扩展服务集和基本服务集信息,并选择加入一个合适的基本服务集。WLAN中负载均衡就是由多个AP为多个移动终端提供接入服务的系统,每一个AP通过利用网络信息进行站点管理,目的是充分利用网络现有资源,减少网络阻塞。
位于中心点的AP,经过一段时间的运行,连接的终端的个数要多于四周AP的终端个数,承担的业务也已经饱和,此时连接到中心点AP的终端的业务的服务质量(QoS)已经不能保证。而外围的AP业务还不饱和,网络中出现负载差异。负载均衡就是要解决这种差异,将中心点AP的某些业务转移到外围的AP上,以提高网络的服务容量和中心点AP的业务质量。
负载不均衡形式二:终端不停地切换造成负载抖动
WLAN共有两种工作组织形式,独立基本服务集(IBSS)和基本服务集(BSS)。
终端(例如带有无线网络下的笔记本电脑)在进入网络的时候必须选择一个AP作为连接对象,这就是终端接入过程,接入过程要经过扫描、认证、连接等步骤。一般而言,终端在扫描过程中会扫描到多个AP的信息,终端选择AP的条件是扫描到的AP的信号强度。由于无线局域网中终端的移动特性和无线信道的时变特性,终端在某些情况下会发生从一个BSS切换到另一个BSS的情况。这种情况就是无线局域网中的切换。终端切换带来的问题是切换时延,甚至上层业务的中断。切换还会带来的问题是“乒乓效应”。即终端不停地在两个或多个AP之间切换,终端就像乒乓球一样。这样会造成负载抖动,对网络资源造成极大的损耗。
理解负载均衡,必须先搞清楚正向代理和反向代理。
注:
正向代理,代理的是用户。
反向代理,代理的是服务器
什么是负载均衡
当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。
我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。
负载均衡是用反向代理的原理实现的。
1、轮询(默认)
每个请求 按时间顺序逐一分配 到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstreambackserver {server192168014;server192168015;}
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的
情况。
upstreambackserver {server192168014weight=3;server192168015weight=7;}
权重越高,在被访问的概率越大,如上例,分别是30%,70%。
3、上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstreambackserver{ip_hash;server192168014:88;server192168015:80;}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstreambackserver {serverserver1;serverserver2;fair;}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver { server squid1:3128; server squid2:3128; hash$request_uri; hash_method crc32;}123456
每个设备的状态设置为:
down 表示单前的server暂时不参与负载
weight 默认为1weight越大,负载的权重就越大。
max_fails:允许请求失败的次数默认为1当超过最大次数时,返回 proxy_next_upstream模块定义的错误
fail_timeout:max_fails次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
配置实例:
#user nobody;worker_processes4;events {# 最大并发数worker_connections1024;}http{# 待选服务器列表upstream myproject{# ip_hash指令,将同一用户引入同一服务器。ip_hash; server125219424fail_timeout=60s; server172312183; } server{# 监听端口listen80;# 根目录下location / {# 选择哪个服务器列表proxy_pass http://myproject; } }
摘自https://wwwcnblogscom/lcword/p/12513155html
负载均衡有分硬件负载和软件。
1
硬件方面,可以用F5做负载,内置几十种算法。
2
软件方面,可以使用反向代理服务器,例如apache,Nginx等高可用反向代理服务器。
利用DNSPOD智能解析的功能,就可以实现多台机器负载均衡
首先你用一台高配置的机器来当数据库服务器然后把网站的前端页面复制成多份,分别放在其他的几台机器上面再用DNSPOD做智能解析,把域名解析指向多个服务器的IP,DNSPOD默认就有智能分流的作用,也就是说当有一台机器的资源不够用时会自动引导用户访问其他机器上这是相对来讲比较简单的实现负载均衡的方法
负载均衡有两种含义:第一种,单个负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高,也就是常说的集群(clustering)技术。第二种,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间,这主要针对Web服务器、FTP服务器、企业关键应用服务器等网络应用。通常,负载均衡会根据网络的不同层次(网络七层)来划分。其中,第二层的负载均衡指将多条物理链路当作一条单一的聚合逻辑链路使用,这就是链路聚合(Trunking)技术,它不是一种独立的设备,而是交换机等网络设备的常用技术。现代负载均衡技术通常操作于网络的第四层或第七层,这是针对网络应用的负载均衡技术,它完全脱离于交换机、服务器而成为独立的技术设备。
服务器实现负载均衡有软件和硬件两种方式
软件负载均衡的方式是在一台或多台服务器相应的操作系统上安装一个或多个应用软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。缺点就是服务器上的软件本身就会消耗服务器系统不定量的资源,同时操作系统本身的原因,安全方面会有影响
硬件负载均衡的方法就是直接在服务器和外部网络间安装负载均衡设备,专由门的设备完成专门的任务,独立于操作系统,整体性能得到提高,加上多样化的负载均衡策略,智能化的流量管理,可达到负载均衡需求。
负载均衡具体有三种部署方式:路由模式、桥接模式、服务直接返回模式。
路由模式部署灵活,服务器的网关设置成负载均衡机的LAN口地址,且与WAN口分署不同的逻辑网络。因此所有返回的流量也都经过负载均衡。这种方式对网络的改动小,能均衡任何下行流量。
桥接模式配置简单,不改变现有网络。负载均衡的WAN口和LAN口分别连接上行设备和下行服务器。LAN口
不需要配置IP(WAN口与LAN口是桥连接),所有的服务器与负载均衡均在同一逻辑网络中。这种安装方式容错性差,网络架构缺乏弹性,对广播风暴及其他生成树协议循环相关联的错误敏感。
服务直接返回模式这种安装方式负载均衡的LAN口不使用,WAN口与服务器在同一个网络中,互联网的客户端访问负载均衡的虚IP(VIP),虚IP对应负载均衡机的WAN口,负载均衡根据策略将流量分发到服务器上,服务器直接响应客户端的请求。因此对于客户端而言,响应他的IP不是负载均衡机的虚IP(VIP),而是服务器自身的IP地址。也就是说返回的流量是不经过负载均衡的。因此这种方式适用大流量高带宽要求的服务。
随着网站、应用访问量的增加,一台服务器已经不能满足应用的需求,而需要多台服务器集群,这时就会用到负载均衡
它的好处
负载均衡优化了访问请求在服务器组之间的分配,消除了服务器之间的负载不平衡,从而提高了系统的反应速度与总体性能;
负载均衡可以对服务器的运行状况进行监控,及时发现运行异常的服务器,并将访问请求转移到其它可以正常工作的服务器上,从而提高服务器组的可靠性采用了负均衡器器以后,可以根据业务量的发展情况灵活增加服务器,系统的扩展能力得到提高,同时简化了管理。
什么是软负载
在系统服务器安装负载均衡软件,并对软件进行相关配置,以达到负载均衡的目的。常用软件为Nginx
软负载的优点:
配置简单、使用灵活
性价比高、成本较低
能够承载比较高的负载压力,并且比较稳定
软负载的缺点:
负载能力受限于服务器性能,服务器性能越好,负载能力越强
Nginx不具备会话保持机制
低版本Nginx只支持Round-robin和IP-hash两种负载均衡算法(高版本(172)集成url hash;可以通过第三方插件使用fair负载模式)
什么是硬负载
在外部网络和服务器之间安装负载均衡器。这种负载均衡器独立于操作系统,属于独立的硬件设备,大大提升了负载性能,能够实现最佳的负载均衡需求。常见的硬负载包括F5、A10,综合考虑F5更好一点。
硬负载的优点:
通过独立设备(智能交换机)实现负载均衡,处理能力强
可以做4-7层负载均衡,具备应用交换、会话交换、状态监控等众多能力
适用于多设备、高访问量的场景
硬负载的缺点:
成本高
配置复杂冗余
从性能来看,硬负载要远远强于软负载,对于大体量应用并且财力雄厚的公司来说选择硬负载比较合适;日常企业应用,或者对成本控制比较严的话,Nginx也足以满足负载要求。
0条评论