首页 > 编程知识 正文

java分布式部署方案,java分布式是什么

时间:2023-05-05 17:55:10 阅读:171452 作者:3135

2. ZooKeeper介绍2.1. ZooKeeper的由来在正式介绍ZooKeeper之前,我们先来看看ZooKeeper的由来吧。 很有意思。

以下内容摘自《从 Paxos 到 ZooKeeper》第四章第一节,建议您阅读。

ZooKeeper来自雅虎研究所的研究小组。 当时,研究人员发现,雅虎内部的许多大系统基本上都需要依赖类似的系统进行分布式调整,但这些系统往往存在分布式的单点问题。 因此,雅虎的开发人员试图开发一个通用的、单一的、无问题的分布式协调框架,以便集中精力处理业务逻辑。

关于“ZooKeeper”这个项目的名字,其实也有逸闻。 在立项初期,考虑到此前内部许多项目都是用动物的名字命名的,雅虎的工程师希望这个项目也能以动物的名字命名。 当时研究院的首席科学家RaghuRamakrishnan开玩笑说:“这样下去,我们这里将是动物园! ”。 这话一出,就被称为动物园管理员了。 因为以动物为名的分布式组件是一个整体,所以雅虎的整个分布式系统看起来像一个大动物园。 ZooKeeper现在用于调整分布式环境,因此ZooKeeper的名字也应运而生。

2.2. ZooKeeper概述ZooKeeper是一个开源的分布式协调服务,它封装了复杂、易出错的分布式一致性服务,构成了一套高效可靠的原语集,并具有一系列友好的接口

原语:操作系统或计算机网络术语的范畴。 由几个指令构成,用于完成一定功能的过程。 不可分割性即原语的执行必须是连续的,在执行中不允许中断。

ZooKeeper 为我们提供了高可用、高性能、稳定的分布式数据一致性解决方案,通常被用于实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

此外,ZooKeeper 将数据保存在内存中,性能是非常棒的。 在“读”多于“写”的应用程序中尤其地高性能,因为“写”会导致所有的服务器间同步状态。(“读”多于“写”是协调服务的典型场景)。

2.3. ZooKeeper特征顺序一致性:来自同一客户端的事务请求最终将以严格顺序应用于ZooKeeper。原子性:所有事务请求的处理结果在整个群集中的所有计算机上是一致的。 这意味着整个群集中的所有计算机要么成功应用了单个事务,要么未成功应用单个事务。 无论单一系统映像 :客户端连接到哪个ZooKeeper服务器,显示的服务器端数据模型都是一致的。可靠性:一旦应用更改请求,更改结果将持续,直到被下一个更改覆盖。 2.4. ZooKeeper典型应用场景ZooKeeper简介常用于实现数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、主控选举、分布式锁定、分布式队列等功能

选择以下三个典型的应用场景专门谈谈。

分布式锁:通过创建唯一节点获取分布式锁,获取锁的一方执行相关代码,或者挂起后解锁。 3358 www.Sina.com/:通过从zookeeper的序列节点生成全局唯一id http://www.Sina.com/: http://www.Sina.com /,可以方便地发布/订阅数据xsdyb向ZooKeeper监听到的节点公开数据,其他机器可以通过监听ZooKeeper上的节点变化来实现结构的动态更新。 实际上,这些功能的实现基本上要归功于ZooKeeper可以存储数据的功能,但需要注意的是ZooKeeper不适合存储大量数据。

2.5 .用于zookeeper的著名开源项目是什么? 33558 www.Sina.com/: zookeeper主要为Kafka提供Broker和Topic的注册以及多个Partition的负载均衡等功能。 3358 www.Sina.com/: zookeeper为Hbase提供了一些功能,例如确保整个群集中只有一个主节点,并存储和提供注册服务器的状态信息(是否在线) 3358 www.Sina.com/: zookeeper为Namenode提供高可用性支持。 3. ZooKeeper重要概念解读破音:出一本小书,下面的内容很重要哦。

3.1. Data model (数据模型) ZooKeeper数据模型采用分层的二叉树结构,可以将数据存储在各个节点。 这些数据可以是数字、字符串或二次序列。 然后。 每个节点还可以有n个子节点,顶层根节点用“/”表示。 分别是

数据节点在 ZooKeeper 中被称为 znode,它是 ZooKeeper 中数据的最小单元。并且,每个 znode 都一个唯一的路径标识。

强调一句:ZooKeeper 主要是用来协调服务的,而不是用来存储业务数据的,所以不要放比较大的数据在 znode 上,ZooKeeper 给出的上限是每个结点的数据大小最大是 1M。

从下图可以更直观地看出:ZooKeeper 节点路径标识方式和 Unix 文件系统路径非常相似,都是由一系列使用斜杠"/"进行分割的路径表示,开发人员可以向这个节点中写人数据,也可以在节点下面创建子节点。这些操作我们后面都会介绍到。

3.2. znode(数据节点)

介绍了 ZooKeeper 树形数据模型之后,我们知道每个数据节点在 ZooKeeper 中被称为 znode,它是 ZooKeeper 中数据的最小单元。你要存放的数据就放在上面,是你使用 ZooKeeper 过程中经常需要接触到的一个概念。

3.2.1. znode 4种类型

我们通常是将 znode 分为 4 大类:

持久(PERSISTENT)节点 :一旦创建就一直存在即使 ZooKeeper 集群宕机,直到将其删除。临时(EPHEMERAL)节点 :临时节点的生命周期是与 客户端会话(session) 绑定的,会话消失则节点消失 。并且,临时节点只能做叶子节点 ,不能创建子节点。持久顺序(PERSISTENT_SEQUENTIAL)节点 :除了具有持久(PERSISTENT)节点的特性之外, 子节点的名称还具有顺序性。比如 /node1/app0000000001 、/node1/app0000000002 。临时顺序(EPHEMERAL_SEQUENTIAL)节点 :除了具备临时(EPHEMERAL)节点的特性之外,子节点的名称还具有顺序性。 3.2.2. znode 数据结构

每个 znode 由 2 部分组成:

stat :状态信息data : 节点存放的数据的具体内容 最后:学习总结——MyBtis知识脑图(纯手绘xmind文档)

学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)

除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!

资料领取方式:戳这里免费下载

s源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!

资料领取方式:戳这里免费下载

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。