千万级高并发负载均衡软件HAproxy
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的比较
千万级高并发负载均衡软件HAproxy的更多相关文章
- 千万级高并发负载均衡软件haproxy配置文件详解
balance roundrobin #轮询方式 balance source #将用户IP经过hash计算后,使同一IP地址的所有请求都发送到同一固定的后 ...
- Django高并发负载均衡
1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能.那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台 ...
- Django 高并发负载均衡
1 什么是负载均衡? 当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能.那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台 ...
- 高并发负载均衡——nginx与lvs
一.企业级web项目架构 一.企业级web项目架构图 二.架构分析 客户端通过企业防火墙发送请求 在App服务器如tomcat接收客户端请求前,面对高并发大数据量访问的企业架构,会通过加入负载均衡主备 ...
- MySQL 高级性能优化架构 千万级高并发交易一致性系统基础
一.MySQL体系架构 由图,可以看出MySQL最上层是连接组件.下面服务器是由连接池.管理服务和工具组件.SQL接口.查询解析器.查询优化器.缓存.存储引擎.文件系统组成. 1.连接池 管理.缓冲用 ...
- linux系统多网卡热备实现高并发负载均衡
#nmcli实现bonding #先停止NetworkManagerservice NetworkManager stop chkconfig NetworkManager off //开机自启动 ...
- http高可用+负载均衡 corosync + pacemaker + pcs
http高可用+负载均衡 corosync + pacemaker + pcsopenstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861. ...
- 【高并发解决方案】8、Nginx/LVS/HAProxy负载均衡软件的优缺点详解
PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不 ...
- HAProxy & Keepalived L4-L7 高可用负载均衡解决方案
目录 文章目录 目录 HAProxy 负载均衡器 应用特性 性能优势 会话保持 健康检查 配置文件 负载均衡策略 ACL 规则 Web 监控平台 Keepalived 虚拟路由器 核心组件 VRRP ...
随机推荐
- 如何在一个页面添加多个不同的kindeditor编辑器
kindeditor官方下载地址:http://kindeditor.net/down.php (入门必看)kindeditor官方文档:http://kindeditor.net/doc.ph ...
- C# 高效编程笔记2
C# 高效编程笔记2 1.理解GetHashCode()的陷阱 (1)作用:作为基于散列集合定义键的散列值,如:HashSet<T>,Dictionary<K,V>容器等 (2 ...
- Monkey Patch/Monkey Testing/Duck Typing/Duck Test
Monkey Patch Monkey Testing Duck Typing Duck Test
- Delphi_08_Delphi_Object_Pascal_基本语法_06_函数参数
发现Delphi中关于函数参数部分的内容还是比较多的,暂时说到这篇随笔为止吧,以后再继续讨论一下函数的参数部分的内容. 一 工程文件 program DefaultParameter; {$APPTY ...
- 模块化你的JS代码
为什么要使用模块模式? 因为在全局作用域中声明的变量和函数都自动成为全局对象Window的属性,这经常会导致命名冲突,还会导致一些非常重要的可维护性难题,全局变量越多,引入错误BUG的概率就越大!所以 ...
- php使用microtime(true)查看代码执行时间
microtime() 函数返回当前 Unix 时间戳和微秒数. 如果带个 true 参数, 返回的将是一个浮点类型 round() 取出小数点后 3 位 $t1 = microtime(true); ...
- x01.os.21: print "Loading..."
Linux Inside 是中文版,值得下载一读. 先把目标设低点,开机进入后,在屏幕上打印“Loading..."即可.由于要在 bochs 中运行,首先就是安装 bochs.Oldlin ...
- 如何实现可动态调整隐藏header的listview
(转自:http://blog.sina.com.cn/s/blog_70b9730f01014sgm.html) 需求:根据某种需要,可能需要动态调整listview的页眉页脚,譬如将header作 ...
- infer 检验IOS项目
1.MAC安装infer: brew install infer 2.设置环境变量指向安装infer/bin下 3.source .bash_profile 4.命令 infer -- xcode ...
- 基于pcDuino-V2的无线视频智能小车
这段时间抽空做了个智能视频小车.包含了pid电机控制.socket网络编程.多线程编程.epoll机制.gtk图形界面编程. 这是界面: 小车的底层是用的stm32f405系列的单片机+电机驱动做的一 ...