IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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是一个开源的分布式应用程序协调服务,为分布式应用提供一致性服务的软件。是Hadoop和Hbase的重要组件。提供功能有:配置服务、域名服务、分布式同步、组服务等。

使用Zookeeper使总服务器自动感知有多少可提供服务的子服务器,并向这些子服务器发出服务请求,当总服务器宕机时自动启用备用的总服务器。

工作原理

Zookeeper核心是原子广播,该机制保障了各个Server之间的数据同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,分别是恢复模式和广播模式。

恢复模式:当服务启动或者领导者崩溃后,Zab进入恢复模式,当领导者被选举出来,且大多数Server完成了跟leader之间的状态同步以后,恢复模式就结束了。?

广播模式:一旦leader和多数的follower进行了状态同步之后,他就可以开始广播消息,进入广播模式。这时候当一个Server加入zookeeper服务中,他会在恢复模式下启动,发现leader并和leader进行状态同步。待到同步结束后,他也参与到广播模式中。广播模式需要保证proposal被按顺序处理,采用递增的事务id(zxid)来保证。

Zookeeper是以Fast Paxos算法为基础,通过选举产生一个leader,只有leader才能提交proposer,具体算法参考Fast Paxos。

Zookeeper的运行流程:

1、选举出leader

2、同步数据

3、选举leader过程中算法有很多,但是要达到的选举标准是一致的。

4、leader要具有最高的执行ID,类似root权限

5、集群中大多数的机器得到响应并接受选举出的leader

应用场景

可靠存储,表现为配置管理、名字服务,因为ZK多备份的可靠性强。可以利用回调机制在数据变更时可以进行全体通知。实现简单高效,因此应用最广。

集群管理,利用ZK的通讯与回调机制完成分布式集群的机器状态监视,甚至很多系统中做主从备份时都会在ZK中注册以方便做热备切换。

服务注册发现管理,可靠存储加上通知回调机制其实满足了服务注册发现的最基本需求,某些在本人看起来不那么靠谱的应用场景,居然也在采用ZK实现。大有一统天下之势,所有类似的需求都开始采用ZK方案,比较出名的系统比如国内的Dubbo和国外的Kafka(居然还把ZK用在了负载均衡上面)、jStorm、Heron(twitter)等。

选主服务,选主服务是ZK参考的原始系统Chubby设计出来最初的应用需求,当时是满足BigTable的master选主。ZK最初也是用在HBase里面,而后所有需要选主服务的都在采用。
需要注意的是有时选主服务也视为分布式锁的一种,很容易混淆概念。的确使用ZK来实现选主服务客观上遵循了时间优先原则,但是实际需求并非一定要满足这条,只要保证关键的唯一性就可以了,因此与同步意义上的锁不同。

分布式同步机制,即真正的分布式锁,但是实际应用并不常见。

负载均衡

?

?

?

?

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:51:49  更:2021-07-23 10:54:11 
 
开发: 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年5日历 -2024/5/5 7:35:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码