大家好,又见面了,我是你们的朋友全栈君。
负载均衡:把请求均匀的分摊到多个服务器上处理
DNS负载均衡
DNS负载均衡是通过DNS服务器实现的,主要用于把请求均匀的分布到nginx服务器上,真实情况可能是根据区域区分请求,但是一个地域中请求还是需要均匀的分配到nginx服务器上
实现原理:DNS服务器为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同你的机器上,使得不同的客户端访问不同的服务器,从而达到负载均衡目的
缺点:
无法区分服务器是否挂掉,即使某个ngnix服务器挂掉,DNS仍然会分配
DNS缓存,用户访问网站,dns解析出来的ip一般会在客户端进行缓存。下次访问时会直接从缓存中拿,无法达到真正的均匀
Nginx负载均衡
ngnix是目前流行的、优秀的反向代理服务器,其作为反向代理服务器,主要责任是请求均匀的分摊到应用服务器中,为了达到均匀,ngnix有5种负载均衡策略
1.轮询:请求依次轮流往每个应用服务器上进行分配
缺点:不均匀,可能会出现某些服务器接受的请求较重,负载压力大,不可控;服务器之间需要session同步
2.权重轮询:在轮询的基础上给每个服务器一定的权重,权重大的可以多分配几个请求
优点:可控
缺点:仍需要session同步
3.IP-hash
优点:无需进行session同步,固定IP会访问固定访问一台服务器
缺点:恶意攻击,会造成某台服务器压垮;提供的服务不同,面向的地区不同,ip可能会出现集中,造成不均匀
4.fair:会根据服务器处理请求的速度进行负载均衡分配
5.URL-hash:根据URL进行hash
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159077.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...