HAProxy+Keepalived是如何成为高可用解决方案的?
Posted 研发云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HAProxy+Keepalived是如何成为高可用解决方案的?相关的知识,希望对你有一定的参考价值。
在聊HAProxy+Keepalived之前,让我们从负载均衡谈起。负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
负载均衡建立在现有网络结构之上
它提供了一种廉价有效透明的方法
扩展网络设备和服务器的带宽、增加吞吐量、
加强网络数据处理能力、提高网络的灵活可用性
目前负载均衡的解决方案
一般分为硬件和软件两种
负载均衡解决方案
硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统之外。
软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡。
一般而言
硬件负载均衡在功能、性能上优于软件方式
不过成本昂贵
所以大部分企业公司
会考虑采用软件负载均衡的解决方案
软件负载均衡一般通过两种方式来实现:
基于操作系统的软负载实现
基于第三方应用的软负载实现
LVS(Linux Virtual Server,意即Linux虚拟服务器)
就是基于Linux操作系统实现的一种软负载
而HAProxy是基于第三应用所实现的软负载
LVS是一个虚拟的服务器集群系统,采用IP负载均衡技术和基于内容的请求分发技术。LVS调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。
Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能。其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查)。
HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当前,HAProxy支持两种主要的代理模式:“TCP”(4层,大多用于邮件服务器、内部协议通信服务器等),和“HTTP”(7层)。
在4层模式下,HAProxy仅在客户端和服务器之间转发双向流量,不需要在RS端执行脚本即可实现应用代理。当然,由于Haproxy采用的是NAT模式,数据包来去都会经过Haproxy,因此,在流量特别大的情况下,其性能不如LVS。
下图是HAProxy工作在4层作负载均衡时的架构:
7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改、删除请求 (request)或者回应(response)里的指定内容来控制协议。当然,这种操作要基于特定规则。在一般的中小型公司,建议采用haproxy做负载均衡,而不要使用LVS。
目前比较流行的高可用解决方案
是在Web前端采用
nginx/HAProxy+Keepalived作负载均衡器
后端采用mysql数据库
以LVS+Keepalived的架构
来实现一主多从和读写分离
Keepalived的工作原理图如下:
keepalived是一个类似于layer3, 4 & 5交换机制的软件,采用VRRP(virtual router redundancy protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现linux服务器的多机热备功能。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
研发云上的微服务产品DCOS
就是引入了HAProxy+Keepalived的高可用方案
并进行了前后端分离的设置
由haproxy提供负载均衡
keepalived作为故障转移
以提高系统的可用性
从而进一步保障了微服务功能的实现
获取更多产品介绍及业界动态
以上是关于HAProxy+Keepalived是如何成为高可用解决方案的?的主要内容,如果未能解决你的问题,请参考以下文章
Keepalived高可用+HAproxy实现Nginx+wordpress动静分离
KeepAlived:vrrp实例故障转移(keepalived+haproxy)