博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
千万级高并发负载均衡软件HAproxy
阅读量:6271 次
发布时间:2019-06-22

本文共 1237 字,大约阅读时间需要 4 分钟。

1负载均衡产品介绍

基于硬件的负载均衡设备例如F5,Big-IP,

基于软件的负载均衡产品HAproxy,LVS,nginx
在这些软件产品中,又分为基于操作系统的软负载实现和基于第三方应用的软负载实现。
LVS就是基于Linux操作系统实现的一种软负载均衡,而HAproxy是基于第三方实现的软负载均衡。

2 HAproxy简介

HAProxy是一个开源的,高性能的,基于TCP和HTTP(第七层)应用的负载均衡软件。

可靠性和稳定性好,可以与硬件级的F5媲美
可以同时维护4-5万的并发连接。
支持多于8种负载均衡算法,也支持session保持。
支持虚拟主机的功能
1.3后支持拒绝连接,全透明代理等功能
拥有一个强大的服务器状态监控页面可以实时了解系统运行状态。
支持ACL

3四层和七层负载均衡的区别

四层负载均衡器

所谓四层就是IOS模型中的第四层,四层负载均衡器也叫四层交换机,主要是通过分析IP层及TCP/UDP层

的力量实现基于IP和端口号的负载均衡,常见的有LVS,F5
主要实现过程以TCP为例
负载均衡器在接收到第一个来自客户端的SYN请求时,会通过设定的负载均衡算法选择一台最佳的后端服务器
同时将保温中的目标IP地址修改为后端服务器IP,然后直接转发给后端服务器这样一个负载均衡就完成了。
在这个过程中,一个TCP连接时客户端与服务器直接建立连接的,而负载均衡器只不过相当于路由器的转发动作。
负载均衡器

client---------TCP连接----------转发连接-----服务

修改报文头目标地址修改源地址(根据需求)

七层负载均衡器

七层负载均衡器也叫七层交换机,位于ISO模型的最高层应用层,此负载均衡支持多种协议,例如HTTP,FTP,SMTP等。

七层负载均衡可以根据报文内容,在配合负载均衡算法来选择后端服务器,因此也可叫内容交换器
对于web来说,七层负载均衡不但可以根据IP+端口号来负载分流,还可以根据网站的URL,访问域名,浏览器,语言等来
决定负载均衡策略。
主要实现过程以TCP为例
由于负载均衡器要获取报文的内容,因此只能先代替后端服务器和客户端建立连接,接着才能收到客户端发来的报文内容,然后根据
报文中特定字段加上负载均衡器中设置的负载均衡器算法来决定最终选择的内部服务器,在整个过程中,七层负载均衡器类似与一个代理服务器。

七层负载均衡器

client ----独立TCP连接----代理----------独立TCP连接------server
对比以上可以看出七层模式下,负载均衡器和客户端以及后端服务器都会分别建立一次TCP连接,而四层负载均衡模式下,仅仅建立一次TCP连接.
所以,七层对负载均衡设备要求更高,七层处理能力必然低于四层模式。

 4 LVS NGINX  HAproxy的比较

 

转载于:https://www.cnblogs.com/Dicky-Zhang/p/6186550.html

你可能感兴趣的文章
rtf格式的一些说明,转载的
查看>>
REST Security with JWT using Java and Spring Security
查看>>
echarts学习总结(二):一个页面存在多个echarts图形,图形自适应窗口大小
查看>>
IIS7显示ASP的详细错误信息到浏览器
查看>>
使用fiddler对手机APP进行抓包
查看>>
exit和_exit的区别
查看>>
Javascript、Jquery获取浏览器和屏幕各种高度宽度(单位都为px)
查看>>
php不重新编译,安装未安装过的扩展,如curl扩展
查看>>
JavaScript编码encode和decode escape和unescape
查看>>
ppp点对点协议
查看>>
html5游戏开发-简单tiger机
查看>>
Codeforces 712C Memory and De-Evolution
查看>>
编写的windows程序,崩溃时产生crash dump文件的办法
查看>>
Ural2110 : Remove or Maximize
查看>>
Django REST framework 的TokenAuth认证及外键Serializer基本实现
查看>>
《ArcGIS Runtime SDK for Android开发笔记》——问题集:如何解决ArcGIS Runtime SDK for Android中文标注无法显示的问题(转载)...
查看>>
Spring Boot日志管理
查看>>
动态注册HttpModule管道,实现global.asax功能
查看>>
使用 ES2015 编写 Gulp 构建
查看>>
[转]Using NLog for ASP.NET Core to write custom information to the database
查看>>