Zookeeper(一)特性与节点数据

这篇具有很好参考价值的文章主要介绍了Zookeeper(一)特性与节点数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CAP&Base理论

CAP理论

        1、一致性(Consistency): 在分布式环境中,一致性是指数据在多个副本之间是否能够保持一直的特性;

        2、可用性(Availability):每次请求都能获得正确的响应,但不保证获取的数据为最新数据;

        3、分区容错性(Partition tolerance):分布式系统在遇到任何网络分区故障的时候,任然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障;

这三个中最多只能同事满足两项,P是必须满足的,因此只能是CP(一致性)和AP;zookeeper保证的是CP,eureka实现的是AP;

Base理论

BASE是Basically Available(基本可用)、Soft-sate(软状态)和Eventually Consistent(最终一致性);

1、基本可用:分布式系统出现故障,允许损失部分可用性(降级);

2、软状态:中间状态;中间状态不影响系统的可用性。这里的中间状态是指不同的数据备份节点之间的数据更新可以出现延时的数据最终一致性;

3、 最终一致性:个数据节点经过一段时间达到一致性;

Base理论是对CAP理论的一个权衡,核心思想是:我们无法做到强一致性,可以根据业务特性采用最终一致性策略处理;

Zookeeper写入是强一致性,读取是顺序一致性;

客户端将数据写入任意一个节点都会转到leader中去写入,leader节点写入成功以后,follower节点靠分布式事务保证大多数节点写入成功以后返回;

少数读取非一致性问题Zookeeper提供了读取之前到leader拉去最新数据的操作(sync);
Zookeeper中有版本号的概念;

Zookeeper

概念

Zookeeper是一个开源分布式协调框架,主要用来解决分布式一致性问题;

本质上他也是一个分布式的小文件管理系统(文件系统+监听机制);

设计者本身是基于观察者模式设计的分布式服务管理框架;一但数据发生变化,zookeeper可以将变化通知到注册的观察者;
Zookeeper(一)特性与节点数据,Zookeeper,zookeeper,分布式,云原生

配置文件详解

# zookeeper时间配置中的基本单位(毫秒)

tickTime=2000*

# zookeeper时间配置中的基本单位(毫秒)tickTime=2000允许follower初始化连接到leader最大时长,它表示tickrime时间倍数即:initLimit * ticktime

initLimit=10

#允许follower与leader数据同步最大时长,它表示tickTime时间倍数

syncLimit=5

#zookeper数据存储目录及目志保存目录(如果没有指明dataLogDir,则日志也保存在这个文件中,次会存储类似mysql中的事务日志,换成固态硬盘存储路径可优化性能)(tmp目录尽可能替换否则可能会被当成临时文件删除)

dataDir=/tmp/zookeeper

#对客户端提供的端口号

clientPort=2181

#单个客户端与zookeeper最大并发连接数

maxclientCnxns=60

#保存的数据快照数量,之外的将会被清除

autopurge.snapRetainCount=3

#自动触发清除任务时间间隔,小时为单位。默认为0,表示不自动清除。autopurge.purgeInterval=1

安装启动略过

数据模型

Zookeeper数据模型是层次模型,层次模型常见于文件系统。层次模型和key-value模型是两种主流的数据模型;

Zookeeper(一)特性与节点数据,Zookeeper,zookeeper,分布式,云原生

1、每个节点只允许存储1m数据;

节点分类

1、持久节点:这样的节点在创建之后及时发生Zookeeper集群宕机或者client宕机也不会丢失;

2、临时节点:client宕机或者client在指定的timeout时间内没有给集群发送消息,节点就会丢失;

3、持久顺序节点:除了具备持久性之外,名字具备顺序性;

4、临时顺序节点:除了具备临时节点的特点意外,名字具备顺序性;

5、容器节点:当容器中没有任何子节点,该容器节点会被zk定期删除;

6、TTl节点:带过期时间节点;

节点状态重要信息

1、cZxid:节点创建事务id;

2、ctime:节点创建时间;

3、mZxid:节点被修改的事务id,每次修改节点都会更新mZxid(保证事务特性的关键信息)

4、pZxid:节点列表最后一次修改的事务id,增减删除节点时修改; 

5、dataVersion:数据版本信息

6、ephemeralOwner:临时节点存储sessionId(客户端链接为长链接)的属性,不是临时节点则为0;

监听机制

1、一个监听事件是一个一次性的触发器(3.6版本后增加永久性监听);

2、zookeeper采用了watcher机制实现数据发布订阅功能

3、watcher机制事件上与观察者模式类似;

watcher的过程:

1、客户端向服务端注册watcher

2、服务端实践触发watcher

3、客户端回调watch二得到触发时间情况

特点:

一次性、客户端顺序回调、轻量级、时效性

使用场景

1、注册中心

2、数据发布/订阅

3、负载均衡

4、明明服务

5、分布式协调通知

6、集群管理

7、Master选举

8、分布式锁

9、分布式队列文章来源地址https://www.toymoban.com/news/detail-762494.html

到了这里,关于Zookeeper(一)特性与节点数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【分布式】Zookeeper

    可以参考:https://zhuanlan.zhihu.com/p/62526102 ZooKeeper 是一个分布式的,开放源码的分布式应用程序协同服务。ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 配置管理。 Java微服

    2024年02月11日
    浏览(33)
  • 分布式协调组件Zookeeper

    ZooKeeper 是⼀种 分布式协调组件 ,用于管理大型主机。 在分布式环境中协调和管理服务是一个复杂的过程 。ZooKeeper 通过其简单的架构和 API 解决了这个问题。ZooKeeper 允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。 分布式协调组件 在分布式系统

    2024年02月13日
    浏览(32)
  • Zookeeper 分布式锁案例

    Zookeeper 是一个开源的分布式协调服务,可以用于维护分布式系统中的一致性、顺序性和命名等。其中,Zookeeper 的分布式锁机制可以用于实现分布式系统中的互斥访问,确保在多个节点上对共享资源进行同步访问。 Zookeeper 分布式锁的实现原理是基于 Zookeeper 的临时有序节点和

    2024年02月16日
    浏览(29)
  • ZooKeeper的分布式锁

    ZooKeeper的分布式锁机制主要利用ZooKeeper的节点特性,通过创建和删除节点来实现锁的控制。 实现步骤: 创建锁节点:当一个进程需要访问共享资源时,它会在ZooKeeper中创建一个唯一的临时顺序节点作为锁。 尝试获取锁:进程会查看当前所有的锁节点,检查自己创建的节点是

    2024年04月22日
    浏览(29)
  • zookeeper伪分布式安装

    需要有jdk1.8 (1)将zookeeper的安装包上传到/opt/modules目录下 (2)解压 (3)更名 切换到/opt/installs目录下 (4)配置环境变量 切换到/opt/installs/zookeeper3.6.3/conf目录下

    2024年02月17日
    浏览(26)
  • Zookeeper实现分布式锁

    ZooKeeper是一个分布式协调服务,其中提供的序列化、持久化、有层次的目录结构使得它非常适合用于实现分布式锁。在ZooKeeper中,分布式锁通常通过临时有序节点实现。以下是ZooKeeper分布式锁的详细介绍:  实现方式: 临时有序节点: 当一个客户端需要获取锁时,它在ZooK

    2024年02月02日
    浏览(46)
  • 分布式锁解决方案_Zookeeper实现分布式锁

    提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 分布式锁解决方案_Zookeeper实现分布式锁 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: Zookeeper 是一个开源的分布式协调服务,它

    2024年02月03日
    浏览(29)
  • 4、Zookeeper分布式安装部署

    1、分布式安装部署 1)集群规划 在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。 服务器hadoop102 服务器hadoop103 服务器hadoop104 Zookeeper Zookeeper Zookeeper Zookeeper 2)解压安装 (1)解压Zookeeper安装包到/opt/module/目录下  (2)修改/opt/module/apache-zookeeper-3.5.7-bin名称为zookeeper 3)配

    2024年02月12日
    浏览(38)
  • 基于zookeeper实现分布式锁

    目录 zookeeper知识点复习 相关概念 java客户端操作 实现思路分析  基本实现 初始化链接 代码落地  优化:性能优化  实现阻塞锁 监听实现阻塞锁 优化:可重入锁 zk分布式锁小结  Zookeeper(业界简称zk)是一种提供配置管理、分布式协同以及命名的中心化服务,这些提供的 功

    2024年02月02日
    浏览(52)
  • 02-zookeeper分布式锁案例

    核心思想 :当客户端要获取锁,则创建节点,使用完锁,则删除该节点。 当我们假设根节点/ 下有/locks节点时 1)客户端获取锁时,在locks节点下创建 临时顺序 节点。 2)然后获取lock下面的所有子节点,客户端获取到所有的子节点之后,如果 发现自己创建的子节点序号最小

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包