一、keepalivedweb
keepalived高可用之间是经过vrrp通讯的;vrrp经过竞选机制肯定主备,主的优先级高于备,所以在工做时主优先得到资源,备节点处于等待状态,当备节点没法接收到主节点的心跳信息时,备节点就回接管主节点的全部资源,顶替主节点对外服务。
vrrp:虚拟路由冗余协议,主要是解决静态路由的单点故障问题;
vrrp是经过一种竞选协议机制将路由交给某台vrrp路由器的;
vrrp是用IP多播的方式实现高可用对之间的通讯
主节点发包,备节点接包,当备节点接收不到主节点发送的数据包时,就启动接管程序接管主节点的资源。备节点有多个,也是经过竞选机制接管主节点的资源
vrrp使用了加密协议加密数,可是keepalived官方依然使用的是明文方式进行认证配置的;数据库
二、heartbeatapache
1)、Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通讯是高可用集群的两个关键组件; 经过修改heartbeat的配置文件,能够指定一台heartbeat服务器做为主服务器,另外一台自动成为热备服务器。在热备服务器上面配置heartbeat守护程序来监听来自主服务器的心跳信息。若是在规定时间内,没法监听到心跳信息,那么就启动故障转移,取得主服务器上的相关资源的全部权,接替主服务器继续不间断的提供服务,从而达到资源以及服务高可用的目的。
heartbeat还支持主主模式,及两台服务器互为主备。通常故障切换时间在5~20s之间。
另外:和keepalived的服务同样,heartbeat高可用是服务器级别的,不是服务级别的。服务器服务器宕机
heartbeat软件故障
心跳链接线故障)
服务故障不会致使切换,能够经过服务宕机把heartbeat服务停掉。网络2)、 心跳链接:
至少须要两台主机才能够实现高可用服务。
两台heartbeat服务之间通讯:
穿行电缆,所谓的串口(首先,缺点是距离不能太远)
一根以太网电缆两网卡直连(经常使用方式)
以太网电缆,经过交换机等网络设备链接。(交换机可能出现问题等)ide
三、对比工具
1)Keepalived使用更简单:从安装、配置、使用、维护等角度上对比,Keepalived都比Heartbeat要简单得多,尤为是Heartbeat 2.1.4后拆分红3个子项目,安装、配置、使用都比较复杂,尤为是出问题的时候,都不知道具体是哪一个子系统出问题了;而Keepalived只有1个安装文件、1个配置文件,配置文件也简单不少;
2)Heartbeat功能更强大:Heartbeat虽然复杂,但功能更强大,配套工具更全,适合作大型集群管理,而Keepalived主要用于集群倒换,基本没有管理功能;
3)协议不一样:Keepalived使用VRRP协议进行通讯和选举,Heartbeat使用心跳进行通讯和选举;Heartbeat除了走网络外,还能够经过串口通讯,貌似更可靠;
4)使用方式基本相似:若是要基于二者设计高可用方案,最终都要根据业务须要写自定义的脚本,Keepalived的脚本没有任何约束,随便怎么写均可以;Heartbeat的脚本有约束,即要支持service start/stop/restart这种方式,并且Heartbeart提供了不少默认脚本,简单的绑定ip,启动apache等操做都已经有了;加密
四、总结:设计
web的高可用采用keepalived,若是数据库之间作高可用,也可使用keepalived,可是推荐采用heartbeat;rest