当前位置:网站首页>负载均衡简介
负载均衡简介
2022-04-23 04:46:00 【xmh-sxh-1314】
一、负载均衡
负载均衡的目的就是让请求到达不同的服务器上。一次请求到服务器之间,有那么多环节,因此可以实现的方法有很多种,实际应用中不外乎以下几种方式。
1.HTTP重定向负载均衡
HTTP重定向负载均衡有一台重定向服务器,它也是一台普通的服务器,其唯一的功能就是根据用户的HTTP请求计算一台应用集群中服务器的地址,并将此地址写入HTTP重定向响应中返回给用户。
这种方案实现起来非常简单,但是需要浏览器请求两次服务器才能完成。并且重定向服务器很容易编程瓶颈,因为一次重定向返回的过程,也是一次标准HTTP请求,如果集群内有10台机器,那HTTP重定向服务器的流量将是应用服务器的10倍,如果有100台估计就要宕机了,所以伸缩性能受到了很大的限制。还有使用302响应码重定向,不利于网站的SEO。
2.DNS域名解析负载均衡
这是利用DNS处理域名解析请求的同时进行负载均衡处理的一种方案。在DNS中配置多个A记录,每次域名解析请求都会根据负载均衡算法计算一个不同的IP地址返回。
DNS域名解析负载均衡的优点是将负载均衡的工作转交给DNS,省掉了网站管理维护负载均衡服务器的麻烦,同时还可以使用智能DNS可以基于地理位置或者ISP来做域名解析,用户将会得到距离最近或者速度最快的一个服务器地址,这样可以加快用户的访问速度,改善性能。
但是这种方法也有很大的缺点,DNS是多级解析,每一级都会缓存DNS记录,如果某个服务器变动了,DNS记录更新的时间将会很长,这个速度取决于域名服务商。
一般大型网站都会使用DNS域名解析,利用域名解析作为一级负载均衡手段。你可以使用 dig <域名> 的方法查看某个域名的A记录,你会发现很多网站会有多条A记录。
3.反向代理负载均衡
这种方法就是使用反向代理服务器,它一般在web服务器前面,这个位置也正好是负载均衡服务器的位置,所以大多数反向代理服务器同时也提供负载均衡的功能。
由于web服务器不直接对外提供访问,因此web服务器不需要使用外部IP,而反向代理服务器则需要配置双网卡和内部外部两套IP地址。
反向代理服务器转发请求是在HTTP协议层面,因此也叫应用层负载均衡,由于应用层在七层网络模型中的第七层,所以一般也称为七层负载均衡。优点就是和反向代理功服务器功能集成在一起,部署简单。缺点是反向代理服务器是所有请求和响应的中转站,其性能可能会成为瓶颈。
4.网络层负载均衡
这种方法是在网络层通过修改请求目标地址进行负载均衡,网络层在七层网络层模型的第四层,所以也叫做四层负载均衡,也叫做IP层负载均衡。
请求达到负载均衡服务器后,由负载均衡服务器在操作系统内核进程获取网络数据包,根据负载均衡算法得到一台真实web服务器的地址,然后修改请求的目的地址到这台真实的web服务器地址,等到web服务器处理完成后,响应数据包回到负载均衡服务器,再将数据包源地址修改为自身的IP(负载均衡服务器的IP)地址发送给用户浏览器
这里关键在于真实无力web服务器响应数据包如何返回给负载均衡服务器。一种是源地址转换(SNAT),第二种是负载均衡服务器作为网关服务器。
网络层的负载均衡在内核进程完成数据转发,有更好的性能。但是由于响应请求的流量要经过负载均衡服务器,容易成为瓶颈。
5.数据链路层负载均衡
数据链路层主要处理 mac 地址,所以使用修改mac地址进行转发请求。负载均衡数据分发过程中不修改IP地址,只修改mac地址,通过配置真实物理服务器集群所有机器虚拟IP和负载均衡服务器IP地址一致,从而达到不修改数据包的源地址和目的地址就可以进行数据分发的目的。由于web服务器的服务器地址IP和数据请求目的IP地址一致,不需要通过负载均衡服务器进行地址转换,可将相应数据包直接返回用户。如果有足够的公有IP,其实web服务器也可以直接使用自己的IP响应请求,不过这样web服务器必须绑定负载均衡的虚拟IP地址(VIP),才能保证web服务器收到来自负载均衡发送的数据包。
这种方式称作三角传输模式,单臂模式,也叫做直接路由方式(DR)。使用DR方式的链路层负载均衡是目前大型网站使用最广的一种负载均衡手段。
版权声明
本文为[xmh-sxh-1314]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_57763462/article/details/124355156
边栏推荐
- View analysis of scenic spots in ArcGIS
- C language: Advanced pointer
- Inverse system of RC low pass filter
- Teach you how to build the ruoyi system by Tencent cloud
- List&lt; Map&gt; Replication: light copy and deep copy
- Painless upgrade of pixel series
- Leetcode005 -- delete duplicate elements in the array in place
- General enumeration constant class
- Go reflection rule
- Flink's important basics
猜你喜欢
Key points of AWS eks deployment and differences between console and eksctl creation
Summary of Android development posts I interviewed in those years (attached test questions + answer analysis)
Recursive call -- Enumeration of permutations
Chapter 4 - understanding standard equipment documents, filters and pipelines
test
Small volume Schottky diode compatible with nsr20f30nxt5g
Innovative practice of short video content understanding and generation technology in meituan
Recommended scheme of national manufactured electronic components
AWS eks add cluster user or Iam role
Record your own dataset with d435i, run orbslam2 and build a dense point cloud
随机推荐
POI export message list (including pictures)
leetcode001--返回和为target的数组元素的下标
Teach you how to build the ruoyi system by Tencent cloud
io. Platform. packageRoot; // ignore: deprecated_ Member_ use
简单的拖拽物体到物品栏
Unity rawimage background seamlessly connected mobile
Supplément: annotation
Record the blind injection script
Solutions to the failure of sqoop connection to MySQL
JS generates a specified number of characters according to some words
A heavy sword without a blade is a great skill
Simply drag objects to the item bar
Improving 3D object detection with channel wise transformer
New terminal play method: script guidance independent of technology stack
Unity攝像頭跟隨鼠標旋轉
Leetcode008 -- implement strstr() function
View analysis of scenic spots in ArcGIS
Flink's important basics
2020 is coming to an end, special and unforgettable.
2021数学建模国赛一等奖经验总结与分享