keepalived与zookeeper都可以用来实现高可用,高可用一般跟负载均衡会一起考虑,所以通常也会考虑到相应的负载均衡能力,

以下是Keepalived与Zookeeper的对比:

一、概括对比:
1、Keepalived:
优点:简单,基本不需要业务层面做任何事情,就可以实现高可用,主备容灾。而且容灾的宕机时间也比较短。
缺点:也是简单,因为VRRP、主备切换都没有什么复杂的逻辑,所以无法应对某些特殊场景,比如主备通信链路出问题,会导致脑裂。同时,keepalived也不容易做负载均衡。

2、zookeeper:
优点:可以支持高可用,负载均衡。本身是个分布式的服务。
缺点:跟业务结合的比较紧密。需要在业务代码中写好ZK使用的逻辑,比如注册名字。拉取名字对应的服务地址等。

所以,区别很明显。从简单性来说:Keepalived最简单,zookeeper稍微复杂一些。
从负载均衡能力来看,zookeeper较强,Keepalived弱很多。
从与业务的紧密程度来看:zookeeper最紧密,而Keepalived基本跟业务层面没有关系。
keepalive只可以选出一台机器作为主机,所以keepalive只能实现M:1的备份
zookeeper可以选出N台机器作为主机,它可以实现M:N的备份

二、具体明细对比:
1.从主被动的角度考虑

    我们知道,nginx server通常和keepalived进行结合,那么keepalived是怎么知道nginx是否存活呢?是nginx主动向keepalived汇报信息?不是的。keepalived是主动向nginx发送请求,如果有响应,那么则nginx可用。

对于zookeeper而言,HDFS,HBase,Yarn基于zookeeper做高可用,这里的zookeeper就是被动的,也就是说HDFS,HBase,Yarn主动向zookeeper中写数据。

2.从负载的角度来考虑
    keepalived可以帮助我们做到主从,主从的划分是通过配置文件(主从的priority之差>50)指定的,如果主没有挂掉,那么大量的请求通过主然后负载到后端的nginx,而从如果想要起作用只有等到主挂掉。
    而利用zookeeper做HA,zookeeper中可以说是“人人平等”,客户端无论访问follower,还是observer,异或是leader,都能给我们返回相应的结果,可以很好的实现了负载均衡,这也可以说是zookeeper的一个优点。

3.从存储数据的角度
    keepalived不可以存储数据,假设keepalived的主现在有50个连接,如果没有外部数据库存储这些连接的信息,主挂了的话,连接信息也就丢了,所以使用keepalived需要一个外部的数据库,但是如果主挂了的同时数据库也挂了,那么就over了,信息就会丢失,或者从起来后,连不上数据库,那么之前的连接信息也会丢失。
    zookeeper可以存储数据,zookeeper中可以创建一个zNode,里面存放数据,zookeeper可以做到一个分布式数据的一致性,zookeeper中每个节点的视图是一致的,数据本身可以做到最终一致性,也就是说其中一个server挂了,其他的server还有存的数据,那么这样的话就不需要额外的数据库,zookeeper本身就可以存储一定量的信息。这也可以说是zookeeper的另一个优点。

4.从业务的角度
    keepalived可以说比较简单,只需要简单的配置一下就可以了,使用keepalived的场景:如果我们只需要简单的知道当前的业务中哪个是主,哪个是从,那么可以选用keepalived。

如果除了高可用以外,比如kafka,storm等还要想zookeeper中写一些数据,这时候就需要zookeeper。

keepalived和zookeeper对比相关推荐

  1. 微服务系列之ZooKeeper注册中心和Nacos注册中心Nacos和Zookeeper对比

    一.ZooKeeper注册中心 Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,推 ...

  2. keepalived VS zookeeper

    keepalived VS zookeeper 两者都可以做高可用HA,那么有什么区别呢? 1.从主被动的角度考虑 我们知道,nginx server通常和keepalived进行结合,那么keepa ...

  3. Linux 高可用开源方案 Keepalived VS Heartbeat对比

    1)Keepalived使用更简单:从安装.配置.使用.维护等角度上对比,Keepalived都比Heartbeat要简单得多,尤其是Heartbeat2.1.4后拆分成3个子项目,安装.配置.使用都 ...

  4. Linux-HA 高可用开源方案 Keepalived VS Heartbeat 对比

    两款高可用开源方案:Keepalived和Heartbeat.两者都很流行,但差异还是很大的,现将试用过程中的感受以及相关知识点简单总结一下,供大家选择方案的时候参考. 1)Keepalived使用更 ...

  5. keepalived 和 zookeeper的区别

    2019独角兽企业重金招聘Python工程师标准>>> 两者都可以做高可用HA,那么有什么区别呢? 1.从主被动的角度考虑 我们知道,nginx server通常和keepalive ...

  6. haproxy,lvs keepalived || heartbeat,nginx对比

    VS的特点是:     1.抗负载能力强.是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;     2.配置性比较低,这是一个缺点也是一个优点,因为没 ...

  7. Eureka与ZooKeeper对比,Eureka的优势

    为什么不应该使用ZooKeeper做服务发现 背景 很多公司选择使用ZooKeeper作为Service发现服务(Service Discovery),但是在构建Knewton(Knewton是一个提 ...

  8. 【0】Zookeeper QA

    1.Observer角色如何配置? Zookeeper集群中的中的Leader和Follower角色是由服务器启动时期的Leader选举产生的,Observer不参与选举,此角色的节点需要在配置文件z ...

  9. nginx实现请求的负载均衡 + keepalived实现nginx的高可用

    前言 使用集群是网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求.这种 ...

最新文章

  1. c++文件操作一一读取文件内容
  2. 普通人学python有用吗 知乎-哪些人更有必要学习python?老男孩教育python
  3. [NOIP2018模拟赛10.19]只会暴力报告
  4. linux虚拟网桥配置nat,使用NAT在Proxmox VE 6上创建专用网桥的方法
  5. 随机函数rand()算法
  6. java 虚拟机 新生代与老年代gc_java 虚拟机--新生代与老年代GC
  7. C++标准库与Java基础类对照表
  8. c语言自学门槛,初学C语言的人最常问的几个问题
  9. 有个疑问,想知道你们的前端都是自学吗?
  10. ASP中常用的服务器检测源代码
  11. SFB 项目经验-35-分配公网证书 For Exchange Server 2016(图解)
  12. java jbutton间隔_如何通过百分比设置JButton宽度? - java
  13. 【go 语言】linux下go开发教程3:Golang弃用go get工具
  14. 空间命名的定义及使用:using namespace std 的用法详解
  15. uint64_t {aka long unsigned int}
  16. linux全局搜索是什么,linux之文本搜索工具(grep、egrep)用法
  17. (145)光线追踪距离场柔和阴影
  18. css文字不透明度怎么设置?
  19. kali Linux更新软件包
  20. Statistical Analysis of Network Data with R(第二版) 上机实操 4

热门文章

  1. 解决Win10桌面右键卡顿一直转圈圈的问题
  2. 区块链电子合同,杜绝萝卜章风险
  3. 全球仅通过不到 2000 位的 Elastic 认证工程师,到底难不难?
  4. linux vim 命令无效,Linux vim 命令 command not found vim 命令详解 vim 命令未找到 vim 命令安装 - CommandNotFound ⚡️ 坑否...
  5. GA(遗传算法) 解决TSP问题 Python实现
  6. WebXR 技术调研 - 在浏览器中构建扩展现实(XR)应用
  7. 休闲卤味的商业江湖里,周黑鸭的巨变与出路
  8. window系统CMD查看内存使用情况
  9. 机器学习数学原理(3)——生成型学习算法
  10. COLMAP: Structure-from-Motion Revisited 论文阅读