Zookeeper的优点和缺点
1、Zookeeper的优点和局限性
在学习了Zookeeper体系介绍和特性后,您已经很好地理解了Zookeeper。现在,在这个ZooKeeper教程中,我们将讨论ZooKeeper的优点和局限性。有几个功能对用户非常有益。在同一个地方,也有一些限制,我们必须先了解它。
所以,让我们分别学习Zookeeper的好处和限制。
2、ZooKeeper的优点
以下是使用Apache ZooKeeper的各种优点列表:
a. 简单分布式协调过程 Zookeeper中所有节点之间的协调过程非常简单。
b. 同步 Zookeeper的工作高度同步,这意味着服务器进程之间存在互斥和合作。基本上,此同步有助于Apache HBase进行配置管理。
c. 有序消息 Zookeeper跟踪一个数字,通过表示其顺序与每个更新的标记,通过所有消息在这里订购。
d. 序列化 根据特定规则,Zookeeper会对数据进行编码。此外,它还可确保我们的应用程序始终如一地运行。虽然,在MapReduce中,我们使用此方法(序列化)来协调队列以执行正在运行的线程。
e. 速度 在“读取”更常见的情况下,它以10:1的比例运行,这是很快的速度。
f. 可扩展性 此外,可以通过部署更多计算机来加强Zookeeper的性能。
g. 订单如何受益? 众所周知,Zookeeper中的消息处于完美状态。因此,为了实现更高级别的抽象,需要订单。这就是订单对我们有利的方式。
h. ZooKeeper很快
在“读取”工作负载的情况下,Apache Zookeeper
工作得非常快。
i. 可靠性 另外,我们可以说Zookeeper非常可靠。这是因为只要它应用更新,直到客户端覆盖更新,这将从那时起持续存在。
j. 原子性 只有两种情况可能,数据传输成功或完全失败。虽然没有部分交易的情况。
k. 及时性 简单来说,即使是最新的,这意味着在某个确定的时间内,系统客户的视图是最新的或准时的。
3、Zookeeper的局限性
因为,每个硬币都有两面,在Zookeeper的这么多优点之后也有同样的缺点。所以,这里是几个Zookeeper的列表:
a. 添加新的ZooKeeper服务器可能导致数据丢失 在现有服务器中,数据丢失发生在新ZooKeeper服务器数量超过ZooKeeper服务中已存在的数量时。同时,向ZooKeeper服务发出Start命令,新服务器可以形成仲裁。
b. 无法迁移 在没有用户干预的情况下,ZooKeeper服务器无法从版本3.4迁移到3.3,然后再迁移到3.4。
c. 节点数 确保只允许3或5个ZooKeeper节点。
d. 机架感知复制 目前,它不支持机架放置和感知。
e. 缩放 该服务不支持减少pods的数量,以防止意外数据丢失。
f. 磁盘变更 此外,该服务不支持在初始部署后更改卷需求,以防止重新分配意外数据丢失。
g. 虚拟网络 另一个损失是,当服务部署在虚拟网络上时,如果没有完全重新安装,服务可能无法切换到主机网络。此外,对于尝试从主机切换到虚拟网络,它们是相同的情况。
h. Kerberos 在虚拟网络上,它目前不支持启用Kerberos。
i. 有限的支持 对跨群集方案的支持非常有限。但是,没有CP系统会一直支持跨集群。虽然我们可以说consul似乎在这方面做得更好。
j. 复杂 而且,我们可以说对于胆小的人来说,ZooKeeper是不对的。因为它非常重,所以它也需要我们维持一个相当大的堆栈。
- ActiveMQ笔记(4):搭建Broker集群(cluster)
- OOAD-设计模式(二)之GRASP模式与GOF设计模式概述
- 围棋之幸?围棋之悲?史上最年轻“五冠王”柯洁宣布再战AI
- spring 在Thread中注入@Resource失败,总为null的解决方案
- ActiveMQ笔记(3):基于Networks of Brokers的HA方案
- HTML5 Video Player概览
- 统计01:概述
- ActiveMQ笔记(2):基于ZooKeeper的HA方案
- ActiveMQ笔记(2):基于ZooKeeper的HA方案
- CSS几个竖直与水平居中盒子模型
- ZooKeeper 笔记(6) 分布式锁
- Hadoop(十五)MapReduce程序实例
- dubbox 的各种管理和监管
- bash魔法堂:History用法详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 《深入浅出SQL》问答录(四)
- 《深入浅出MySQL》问答录(五)
- 《深入浅出SQL》问答录(七)
- 《深入浅出SQL》问答录(八)
- Improvise_a_Jazz_Solo_with_an_LSTM_Network_v3a-2
- 《深入浅出SQL》问答录(九)
- 《深入浅出SQL》问答录(十)
- Operations_on_word_vectors_v2a
- LeetCode精选好题(一)
- LeetCode精选好题(二)
- 【leetcode两题选手】算法类题目(7.26)
- MySQL见闻录 -- 入门之旅(一)
- MySQL见闻录 -- 入门之旅(二)
- MySQL见闻录 - 入门之旅(三)
- MySQL见闻录 - 入门之旅(四)