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是不对的。因为它非常重,所以它也需要我们维持一个相当大的堆栈。
- [喵咪大数据]Hive2搭建和基本操作
- [喵咪大数据]Hadoop节点添加下线和磁盘扩容操作
- [喵咪大数据]Hadoop集群模式
- 【教程】使用TensorFlow对象检测接口标注数据集
- [喵咪大数据]Hadoop单机模式
- 【死磕Java并发】—–Java内存模型之happens-before
- 9个,程序员又爱又恨的编程习惯
- Dubbo 源码解析 —— Cluster
- 【死磕Java并发】—–Java内存模型之从JMM角度分析DCL
- 基于PhalApi2的Redis拓展
- [喵咪BELK实战(3)] logstash+filebeat搭建
- Dubbo源码解析 —— Router
- 【死磕Java并发】—–深入分析volatile的实现原理
- phalcon-入门篇3(优美的URL与Config)
- 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进阶:温柔的陷阱-NULL
- SpringBoot 异步任务处理
- SpringBoot整合 ActiveMQ快速入门 实现点对点推送
- Tomcat部署SpringBoot war包
- Vue之插槽Slot理解
- Docker六脉神剑 (三) 编写Dockerfile构建nginx镜像并推送到远程仓库给其他人使用
- 快速学习UML类图查看
- 设计模式 | 抽象工厂模式
- 设计模式 | 单例模式
- macOS 安装软件已损坏无法打开解决办法 (真好用!)
- nginx 配置反向代理
- ES6新特性速查表
- React-Native Android打包
- React-Native iOS打包
- Webpack+Babel手把手带你搭建开发环境(内附配置文件)