博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识ZooKeeper
阅读量:4951 次
发布时间:2019-06-11

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

前言

        因为之前做开发也接触到ZooKeeper,是以服务注册中心的方式来使用ZooKeeper,因为现在要探索分布式事务的问题,所以系统性的学习一下ZooKeeper。ZooKeeper是什么呢?Zookeeper是一个开放源代码的分布式协调服务。它的设计目标是将那些复杂而且容易出错的分布式一致性服务封装起来。构成一个高效可靠的API提供给用户使用。

ZooKeeper是什么

        Zookeeper是一个典型的分布式数据一致性的解决方案。ZooKeeper可以保证分布式一致性的特性。

①顺序一致性:同一个客户端发起的请求,最终会严格地按照发起的顺序被应用到ZooKeeper中去。

②原子性:所有的事务请求结果在整个集群的所有机器的应用情况是一致的,要么全部应用,要么全部不应用。

③单一视图:无论客户端链接的是哪个ZooKeeper服务器,在服务端数据模型都是一致的。

④可靠性:一旦服务端应用了一个事务,并完成了对客户端的响应,改事务所引起的服务端状态变更会一直保存下来。

⑤实时性:Zookeeper保证在一定的时间段内,客户端最终能够从服务器上读取到最新的数据状态。

 

ZooKeeper致力于提供一个高性能高可用具有严格的顺序访问控制能力的分布式协调服务

 

Zookeeper的基本概念

1.集群角色

在ZooKeeper集群环境中,存在Leader、Follower、Observer。这三种角色。集群中所有的机器通过选举的方式产生一个Leader,除了Leader之外,其他的机器都是Follower和Watcher。这两者的区别以后会解释。

2.会话

会话,也就是session是指一个客户端通过TCP长连接的方式和服务器之间建立的通信。客户端能够通过心跳检测与服务器保持有效的会话和接收服务器端的Watch时间通知。如果服务器出现不可用,那么会在sessionTimeOut的时间范围内,客户端能重新连接上其中任意一台集群中的机器,则会话仍然有效。

3.数据节点

在ZooKeeper中,节点分为两类 。一类是集群中的机器,我们称为机器节点。第二类是数据模型中的数据单元。

4.版本

暂不做解释

5.WATCHER

ZooKeeper允许用户再指定的节点上注册Watcher。在某些动作的触发下,服务端会把事件通知到客户端。在Dubbo分布式项目中,就广泛地使用到这个特性。

6.ACL

采用ACL的策略来进行权限控制。create创建子节点权限,read-获取节点数据和子节点的列表数据,write-更新节点数据的权限,delete-删除子节点的权限,admin设置节点acl的权限。

转载于:https://www.cnblogs.com/sunshine798798/p/9739857.html

你可能感兴趣的文章
Mybatis映射原理,动态SQL,log4j
查看>>
哪个微信编辑器比较好用?
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
Pylint在项目中的使用
查看>>
使用nginx做反向代理和负载均衡效果图
查看>>
access remote libvirtd
查看>>
gdb调试中出现No symbol table is loaded. Use the "file" command.问题
查看>>
(4) Orchard 开发之 Page 的信息存在哪?
查看>>
ASP.NET中 GridView(网格视图)的使用前台绑定
查看>>
图像加载
查看>>
关于zxing生成二维码,在微信长按识别不了问题
查看>>
Haskell学习-高阶函数
查看>>
手动通知扫描SD卡主动生成缩略图
查看>>
js中tagName和nodeName
查看>>
PC-XP系统忘记密码怎么办
查看>>
Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)
查看>>
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>
SQL数据库学习系列之一
查看>>
Boosting(提升方法)之AdaBoost
查看>>
CUDA学习1 在Visual Studio和CodeBlocks上配置
查看>>