南宫28


 

南宫28聊聊负载均衡

日期:2021-08-03 13:37:58 浏览次数:126 分类:负载均衡 来源:ng28南宫娱乐官网 作者:ng28南宫娱乐注册

  负载均衡在分布式架构中是一个陈词滥调的问题,经常会遇到,也经常会需求学习。无论是AWS的ELB,仍是阿里的SLB;负载均衡在各大云厂商的产品中都有着无足轻重的位置。今日再来总结下负载均衡的几个重要方面:

  这是一种特别的完成负载均衡的方法。首要原理是经过一个DNS服务器,将域名解析到不同IP,每个IP对应不同的服务端实例。例如:苹果官网,能够依据客户端的拜访来历IP,将拜访定位到对应国家的web目录之下。

  四层负载均衡首要完成方法是 LVS (Linux Virtual Server)。也叫网络负载均衡,经过 IP+端口 的方法进行流量转发;首要有以下三种调度形式:

  NAT 形式由于负载均衡服务器和后端服务器的 IP 不一样,一切数据包的人山人海都依靠负载均衡服务器进行 IP 转化(由负载均衡服务器到实在服务器时 DNAT;由负载均衡服务器到外部用户时 SNAT),负载均衡服务器的网卡带宽简单称为瓶颈;

  恳求报文经过 IP tunnel (将一个 IP 数据报文封装在另一个 IP 数据报文中)转发至意图实在服务器,实在服务器直接将呼应回来给客户(解包后源 IP 为 VIP,意图 IP 为客户端IP)

  调度器写恳求的 MAC 地址,将恳求直接发送给后端 server,后端 server 处理恳求后直接给客户。功能最好

  七层负载均衡首要完成方法是 Nginx 反向署理( Nginx 先运用负载均衡模块找到一台主机,再运用upstream模块完成与这台主机的交互)。七层负载均衡也叫服务端负载均衡;云厂商一般会在这个基础上做一些优化,例如阿里云七层负载均衡叫 Tengine (淘宝吊销的Web服务器项目),就是在反向署理基础上做了许多优化。

  七层就是在四层的基础上,再考虑应用层的特征,比方同一个Web服务器的负载均衡,除了依据VIP加80端口区分是否需求处理的流量,还可依据七层的URL、浏览器类别、言语来决议是否要进行负载均衡。应用层负载均衡和前端的客户端以及后端的服务器会别离树立TCP衔接,所以功能大大不如四层负载均衡。

  负载均衡为了完成流量的均衡调度,一起需求考虑后端服务器添加削减的状况。需求运用一些特别的算法来完成这个方针,特别是在后端服务器添加削减的时分,怎么确保会话尽或许坚持,这个就需求用到一致性哈希(Consistent Hash)算法。

  单调性(Monotonicity),单调性是指假如已经有一些恳求经过哈希分配到了相应的服务器进行处理,又有新的服务器加入到体系中时分,应确保原有的恳求能够被映射到原有的或许新的服务器中去,而不会被映射到本来的其它服务器上去。

  涣散性(Spread):分布式环境中,客户端恳求时分或许不知道一切服务器的存在,或许只知道其间一部分服务器,在客户端看来他看到的部分服务器会构成一个完好的hash环。假如多个客户端都把部分服务器作为一个完好hash环,那么或许会导致,同一个用户的恳求被路由到不同的服务器进行处理。这种状况显然是应该防止的,由于它不能确保同一个用户的恳求落到同一个服务器。所谓涣散性是指上述状况产生的严峻程度。好的哈希算法应尽量防止尽量下降涣散性。 一致性hash具有很低的涣散性

  平衡性(Balance):平衡性也就是说负载均衡,是指客户端hash后的恳求应该能够涣散到不同的服务器上去。一致性hash能够做到每个服务器都进行处理恳求,可是不能确保每个服务器处理的恳求的数量大致相同

  除此之外,假如呈现 hash 歪斜的状况,又不想多加机器。就能够运用虚拟节点的计划来完成。


南宫28