博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
keepalived VS zookeeper
阅读量:6259 次
发布时间:2019-06-22

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

转载请标明出处 


keepalived VS zookeeper

两者都可以做高可用HA,那么有什么区别呢?

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。
你可能感兴趣的文章
误删一个用户 引起数据不准确问题
查看>>
专题:优秀域名如何注册(1)
查看>>
Win10下开启Linux Bash
查看>>
RabbitMQ基础教程之基本使用篇
查看>>
Echart 地图 选择区域保持颜色不变
查看>>
FREEBASIC 编译可被python调用的dll函数示例-续(1)
查看>>
Delphi调用外部程序函数:WinExec() 和ShellExecute详解
查看>>
一场失败的拔河比赛
查看>>
IOS开发工程师欢迎你加入宏略信息
查看>>
php-fpm命令的参数
查看>>
删除SVN记住的密码
查看>>
bash: ./configure: /bin/sh^M: 坏的解释器: 没有那个文件或目录
查看>>
usdt的坑
查看>>
郑雨林-产业互联网
查看>>
OLGhostAlertView
查看>>
多线程状态
查看>>
开源 java CMS - FreeCMS2.8 数据对象 comment
查看>>
互联网常见系统缩写全称
查看>>
HttpWatch
查看>>
MAC 上 selenium 2+sikuli解决swfupload类型上传插件
查看>>