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

本文共 1130 字,大约阅读时间需要 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。

转载于:https://www.cnblogs.com/yaowen/p/9044920.html

你可能感兴趣的文章
MVC3删除主表时自动删除从表中相关信息的方法
查看>>
Cannot Change Opencv Webcam Setting
查看>>
南传法句经(摘选)01
查看>>
poj1417(种类并查集+dp)
查看>>
CCI_Q1.1
查看>>
JavaScript设计模式与开发实践pdf
查看>>
贝叶斯思维 统计建模的Python学习法pdf
查看>>
Visual FoxPro权威指南pdf
查看>>
HDU 2561 第二小整数
查看>>
Python攻克之路-字典
查看>>
Easyui NumberBox格式化展示
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
(描述需要改进) Leetcode No.71 **
查看>>
【技巧】添加sublime-text到右键菜单,记录下来,免忘记
查看>>
socket初识
查看>>
绕啊绕的递归函数
查看>>
杭电2016 数据的交换输出
查看>>
vue+sass 下sass不能运行问题
查看>>
struts 的应用
查看>>
磁盘测试工具
查看>>