| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Zookeeper应用及原理 -> 正文阅读 |
|
[大数据]Zookeeper应用及原理 |
一、zookeeper的介绍1、什么是zookeeperzookeeper是很早的注册中心,在我刚毕业的时候,就已经开始开始。一种分布式协调服务,使用简单的API和架构决绝了这个问题。 2、zookeeper的应用场景
二、搭建zookeeper服务器1、zoo.cfg配置文件说明
2、zookeeper服务器操作命令
三、zookeeper内部的数据模型1、zookeeper是如何保存数据的zk是可以存放数据的,数据都是保存在znode上,是以树状结构存放相关数据的: ?获取数据: ?那么说明,数据abc存放在test2这个znode中。? 2、zookeeper中znode是什么样结构zk中的znode,包含四个部分:
3、zookeeper中节点znode的类型
临时节点删除流程: 4、zookeeper的数据持久化zk的数据是运行在内存中的,必然会提供持久化机制,zk提供的持久化有2种:
同redis一样,采用混合方式进行恢复,先用快照恢复,然后用事物日志增量恢复。 四、zookeeper客户端的使用(zkCli)1、多节点类型的创建2、查询节点
3、删除节点
4、权限设置
五、Curator客户端的使用Curator是一个zk客户端,NetFlix提供的客户端。同时也封装了很多功能,比如Leader选举、分布式锁等等,减少了java开发人员使用zk时候底层细节开发工作。也被称为最好的zk开源框架。 pom: 六、zookeeper实现分布式锁1、zk中锁的种类
2、zk如何上读锁
3、zk如何上写锁
4、羊群效应如果使用上述的上锁方式,只要节点发生变化,就会出发其他节点的监听事件,这样的话对zk的压力很大,也就是羊群效应,使用链式监听可以解决这个问题。 七、zookeeper的watch机制1、watch机制介绍我们可以把watch理解成是注册在特定Znode上的触发器。当这个Znode改变了,也就是调用create、delete、setData方法的时候,就会将触发Znode上注册的对应事件,请求watch的客户端就会接收到异步通知。客户端使用NIOfang s 交互如下:
使用ls -w 监听目录变化。get -w 是监听节点内容的。-R 递归监听。 八、zookeeper集群实战1、zk集群中的角色zk集群中有三种角色:
2、搭建集群
3、链接zk集群
九、ZAB协议1、ZAB介绍zk作为非常重要的分布式协调组件,集群会以一主多从的形式进行部署。zk是强数据一致性的(CP),所以用到了ZAB(原子广播协议)协议,zk节点崩溃的时候,主从同步问题。 2、ZAB协议四种节点的状态
3、集群上线时的Leader选举过程
4、崩溃恢复时候的Leader选举当leader宕机的时候,follower节点发现,会重新选举新的leader。此时集群不对外提供服务。 5、主从服务器之间的数据同步
也就是zk为什么是CP的,必须半数以上的节点已经写入的文件中,才向内存提交。 6、zk中的NIO和BIO应用
十、CAP理论1、CAP定理一个分布式系统中最多只能同时满足一致性(C)、可用性(A)和分区容错性(P)中的2项:
2、CAP权衡既然无法同时满足CAP,那么需要社区哪个呢 ? 在分布式系统中,分区容错性一定是要满足的,否则整个系统就不存在意义。 一致性和可用性,一致性追求的就是数据的就一致性,可用性追求的就是系统在任何时候都是可用的。两个属性是相互违背的。 如果为了数据一致性,在数据同步的时候,是否对外提供服务就是一个大问题,如果提供服务,那么就会出现错误数据的访问,如果不提供服务,那么就无法满足可用性。 3、BASE理论BASE理论是对CAP理论的眼神,核心思想是无法做到强一致性(CAP就是强一致性),但是可以采用合适的方法达到最终一致性。
4、zk追求的一致性zk在追求过程主,满足的是CP,也就是满足数据一致性,最大的特点当复制同步的数据时候,只有半数以上的数据完成本地文件存储,才能同时写入内存。但是也不是强一致性,追求的算是顺序一致性。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:02:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |