• 慕课网首页
  • 免费课
  • 实战课
  • 体系课
  • 发现
    评价 教程 专栏 手记
  • 商业合作
    企业服务 讲师入驻
搜索

热搜

最近搜索 清空

我的购物车

已加入门课程

购物车里空空如也

快去这里选购你中意的课程

实战课

体系课

我的订单中心
去购物车
  • 登录 / 注册
  • 新人专属0元礼包 | 查看
抱歉,未找到你想要查询的结果
全部开发者教程

Zookeeper 入门教程

Zookeeper 入门教程
Zookeeper 简介 Zookeeper 数据模型 Zookeeper 单机模式 Zookeeper 集群模式 Zookeeper ZkClient Zookeeper Curator Zookeeper 的通信及会话 Zookeeper Watch Zookeeper ACL Zookeeper Jute
Zookeeper 应用及原理
Zookeeper 的 Leader 选举 ZooKeeper 集群的数据同步 ZooKeeper 实现分布式锁 Zookeeper 实现分布式 ID ZooKeeper 实现负载均衡 Zookeeper 实现配置中心 ZooKeeper 实现集群管理 使用 Docker 构建 Zookeeper ZooKeeper 的监控 ZooKeeper 的应用
ZooKeeper 学习资料
ZooKeeper 学习资料
  • 前端开发

    JavaScript

    JavaScript 入门教程

    本教程带你从初级到高级全面掌握 Javascript 的使用方法

    TypeScript 入门教程

    这是一个很好的简单课程,只需2小时你就可以学习TypeScript基础知识。

    Vue 入门教程

    本教程带您从零开始学习 Vue 框架的使用,让您轻松应对 Vue 项目的开发。

    Ajax 入门教程

    本教程涵盖Ajax的实现原理,及Ajax封装,最后是框架实现方法。

    ES6-10 入门教程

    对比 ES5 进行学习 ES6+,理解 ES6+ 语法背后的思想

    Yarn 入门教程

    Yarn得相关基础知识和高级进阶

    ECharts 入门教程

    从零开始学习 ECharts ,掌握 ECharts 核心内容

    HTML & CSS

    CSS3 入门教程

    本课程从盒模型、文字、颜色、过渡、动画、布局、伪类等方面介绍 CSS3 的使用。

    雪碧图入门教程

    本文详细介绍了雪碧图的由来历史以及各种使用方式

    移动端布局教程

    由于移动互联网的兴起,移动端项目占据了很大一部分比重,本章将详细讲解几种常见布局

    Html5 入门教程

    最新一代的HTML标准,增加了许多实用的特性

    Sass 入门教程

    前端项目中 Sass 的快速入门教程

    HTML 入门教程

    从零讲解 HTML,掌握基础 HTML 知识内容

    canvas 入门教程

    本教程带你从初级到高级全面掌握canvas的使用方法

    uni-app 入门教程

    从零开始学习 uni-app 框架,轻松上手应用开发

  • 服务端相关

    服务器

    Nginx 入门教程

    本教程使您掌握 Nginx 安装、配置、核心模块的详解、实际使用的能力。

    HTTP 入门教程

    从协议原理开始到 Web 服务器以及 Web 安全一网打尽

    Docker 入门教程

    从 Docker 的基础概念开始,从实际问题入手带你学习 Docker

    Shell 入门教程

    本教程由浅入深,系统性的讲解Linux Shell脚本编程。

    Linux 入门教程

    本教程从安装 Linux 开始,囊括 Linux 基础命令操作以及进阶系统管理

    开发工具

    Gradle 入门教程

    本教程使您掌握实际使用gradle进行项目构建、测试、打包、发布的能力。

    Vim 编辑器教程

    课程主要讲解Vim的安装配置,四种模式、基本操作,以及包管理工具和寄存器等内容。

    RESTful 规范教程

    本教程从什么是 REST 开始带你领略 Web 开发中无处不在的规范

    Dreamweaver 教程

    DW 是一款同时具有网页制作和网页管理功能的网站开发工具,可以快速进行网站建设

    Markdown 入门教程

    本课程涵盖 Markdown 的基本及扩展语法。

    Maven 入门教程

    从最基础的安装 Maven 开始到 Maven 在开发中的实际应用

    Eclipse 编辑器教程

    本教程从Eclipse安装开始带你轻松掌握Eclipse常用开发技巧

    GitHub 入门教程

    本教程带你轻松掌握最实用的 GitHub 知识

    Android Studio 编辑器教程

    Android Studio 编程技巧一网打尽

    PyCharm 编辑器教程

    工作经常用到的 PyCharm 编辑器使用技巧一网打尽

    Sublime Text 使用教程

    花里胡哨展示sublime编辑器的各种功能

    Postman 教程

    Postman 由Google 开发用来做接口请求测试,前后端开发人员都可以使用

    Git入门教程

    从入门到精通。

    热门服务端语言

    C 语言入门教程

    本教程从语法基础、进阶知识等各方面详解 C 语言。

    Go 入门教程

    本教程从 Go 语言的基本语法掌握到进阶编程实践

    Kotlin 教程

    从 Kotlin 的基础语法到高级特性一网打尽

    Ruby 入门教程

    本教程从 Ruby 的各种对象开始学习到 Ruby 的实际使用

    ThinkPHP 入门教程

    本教程主要讲解 ThinkPHP 框架如何上手开发应用

  • Java

    基础应用

    Java 入门教程

    深入浅出讲解 Java 语言基础知识,带你入门 Java 语言

    Android 入门教程

    为你解析最实用的 Android 技术,让你平滑上手,顺利进阶,为开发保驾护航

    算法入门教程

    分析讲解常见算法的思想及使用

    数据结构入门教程

    通俗易懂的带你了解 Java 数据结构

    Lambda 表达式教程

    本教程展现了Lambda表达式的基础语法以及在程序中的应用

    Java 并发原理入门教程

    本教程为Java并发原理入门教程,在Java程序开发中占据着举足轻重的地位

    设计模式入门教程

    带你分析最常见的九个设计模式

    Java并发工具

    本课程简洁明了展示最基本的并发工具类相关概念及应用方法。

    JVM 入门教程

    JVM 入门教程,对JVM结构进行分模块讲解,简单易懂。

    RabbitMQ 入门教程

    超系统的RabbitMQ基础知识课程,你还在等什么?

    网络编程入门教程

    Java 网络编程核心要点详解

    后端通用面试教程

    带你系统梳理后端高频面试题,轻松丰富你的校招&社招阶段

    框架应用

    Spring Boot 入门教程

    循序渐进讲解 Spring Boot 企业级应用开发

    Spring 入门教程

    通俗易懂 渐进式讲解 Spring 企业级开发应用

    Hibernate 入门教程

    由浅入深讲解 Hibernate 企业级 JDBC 应用框架

    MyBatis 入门教程

    本教程整理出“百分之二十”的知识,帮你办到“百分之八十”事情

    Spring MVC 入门教程

    通俗易懂讲解 Spring MVC 框架应用

    Swagger 入门教程

    本课程以图文并茂的方式带你学习 Swagger 核心知识和应用剖析

    Zookeeper 入门教程

    由浅入深的 学习 ZooKeeper 的基本使用以及高级使用

    Netty 教程

    由浅入深的讲解 Netty 的核心知识体系,快速上手使用和理解 Netty

    Spring Security

    本课程涵盖了 Spring Security 框架的基本原理和集成方法

    微服务

    Spring Cloud Hystrix

    系统介绍 Hystrix 支持特性与实际应用场景实战

  • Python

    基础应用

    Python 入门语法教程

    本教程带你从 Python 的基础语法开始学习 Python。

    Python 原生爬虫教程

    本教程从爬虫基础知识到进阶技巧到实际应用。

    Python 进阶应用教程

    本教程涵盖 Python 的面向对象、标准库解析、异常处理直至最后的领域应用

    Python 算法入门教程

    用 Python 代码实现常用算法并汲取算法核心思想。

    进阶方向应用

    Django 入门教程

    从 Web 基础到 Django 框架的实际开发应用

    Flask 框架教程

    Flask 框架快速入门实现一个 TodoList 功能

    NumPy 入门教程

    本教程从基础的数据类型开始到 NumPy 的高级应用一网打尽

    Scrapy 入门教程

    从爬虫基础开始到使用 Scrapy 框架抓取各大网站数据

    TensorFlow 入门教程

    通过本教程对 TensorFlow 框架快速入门

    Python 办公自动化教程

    本教程带你使用Python快速操作Excel、Word、PPT,处理各种文件

    Pandas 入门教程

    本教程从基础的数据类型开始到 Pandas 的高级应用一-网打尽

  • 数据库

    MySQL

    MySQL 入门教程

    本教程主要讲解 MySQL 增删改查等基础操作

    SQL 入门教程

    本教程讲解使用 SQL 访问和处理数据系统中的数据的方法。

    MySQL 进阶教程

    那些你还不理解的 MySQL 高阶特性一网打尽

首页 慕课教程 Zookeeper 入门教程 Zookeeper 入门教程 Zookeeper 简介
imooc_cdd · 更新于 2020-11-03

Zookeeper 数据模型

下一节

Zookeeper 简介

图片描述

1. 前言

大家好,今天我们来介绍一个在分布式环境中经常使用的技术—— Apache Zookeeper 。Apache ZooKeeper 是 Apache Software Foundation 下的开源志愿者项目。接下来我们主要来介绍一下 Zookeeper 是什么?它有什么作用?以及我们为什么要学习 Zookeeper。

2. 什么是 Zookeeper

什么是 Zookeeper 呢?我们先来看一下 Zookeeper 的官网介绍:
Zookeeper 的官网介绍
原文直接翻译过来的概念很抽象,那我们简单的解释一下。在分布式环境中,存在着大量的服务,服务与服务之间难以做到彼此协调,也不便于开发人员对服务进行维护管理,而 Zookeeper 使用它简单的结构和 API ,协调服务与服务之间的关系,让开发人员专注于应用程序的核心业务逻辑,更方便的对应用程序的服务进行管理维护。
所以我们可以把 Zookeeper 叫做分布式协调服务。

简单介绍了 Zookeeper 是什么,接下来我们就来了解一下 Zookeeper 具体的应用场景。

3. Zookeeper 的应用

  1. 服务注册与发现
    当我们的分布式系统增加了一个服务,我们只需要利用 Znode 和 Watcher,让它注册到 Zookeeper 中,我们就可以很方便的对这个服务进行管理;
  2. 分布式锁
    为了防止在分布式环境下,服务中多个进程之间互相干扰,我们可以用 Zookeeper 的临时顺序节点实现分布式锁,对这些进程进行调度,让它们顺序执行;
  3. 配置管理
    我们可以把核心的配置文件交给 Zookeeper 管理。当我们修改配置文件时,Zookeeper 就会把配置文件的信息同步到集群中的所有节点中去。

那么 Zookeeper 是依靠什么来实现这些功能的呢?接下来我们来关注 Zookeeper 有什么特点。

4. Zookeeper 的特点

  1. 在分布式环境下,Zookeeper 的部署方式为一主( Leader )多从( Follower )的集群方式,只要半数以上的节点(包括 Leader 节点)存活,Zookeeper 集群就能正常服务。就算是 Leader 节点挂掉了,Zookeeper 也会进行崩溃恢复,所说 Zookeeper 集群本身是高可用的;
  2. Zookeeper 集群的数据具有全局一致性。也就是说,无论客户端连接到 Zookeeper 集群的哪一个从节点,获取的数据都是一致的;
  3. 在 Zookeeper 集群节点进行数据同步更新时,要么全部成功,要么全部失败。所以 Zookeeper 的数据更新具有原子性;
  4. 在同一个客户端对 Zookeeper 节点进行更新请求操作时,会根据发送的顺序依次去执行;
  5. 由于 Zookeeper 能存储的数据量非常小,所以数据的同步更新也会非常快。也就可以说在一定时间段内,客户端获取的数据是实时的。

根据上面的特点,我们可以了解到 Zookeeper 在分布式环境中的作用还是非常强大的。所以我们还是有必要去学习一下 Zookeeper 的。
说了这么多 Zookeeper 的功能,那它与其他类似功能的技术相比较有什么区别呢?接下来我们用 Zookeeper 和其他技术进行一下比较。

5. Zookeeper 与其他技术的比较

  1. Zookeeper 与 Redis 分布式锁比较
    除了 Zookeeper 可以实现分布式锁之外,我们还可以使用高性能缓存技术 Redis 来实现,我们来比较一下它们的优缺点。

    分布式锁 优点 缺点
    Zookeeper 1. 功能已经封装,实现简单 2. 有等待锁的队列,提升了抢锁的效率 添加和删除节点性能较低
    Redis Set 和 Del 指令的性能高 1. 实现较复杂,需要考虑超时、原子性、误删的情况 2. 没有等锁队列,只能通过客户端自旋来等锁,效率低下
  2. Zookeeper 与 Eureka 的比较
    Eureka 是 Spring Cloud 微服务架构的分布式注册中心。
    在进行比较之前,我们来了解一下 CAP 定理。什么是 CAP 定理呢?

    • C : Consistent ,一致性,需要保证数据的一致性。
    • A : Availability ,可用性,需要保证服务的可用性。
    • P : Partition tolerance ,分区容错性,服务对网络分区故障的容错性。

    在 CAP 这个定理中,任何分布式系统都只能保证其中两条。那么 Zookeeper 和 Eureka 又是保证的哪两条呢?

    分布式注册中心 优点 缺点
    Zookeeper (保证 CP) 新的服务注册时会同步到其他节点,保证了节点数据的一致性 为了保证一致性,在 Leader 选举阶段服务不能注册,失去了可用性
    Eureka (保证 AP) Eureka 的各个节点是平等的,只要有一个节点存在,就可以提供服务 新服务注册时,不会把数据同步到其他节点上,失去了数据一致性

6. 学习 Zookeeper 的必要条件

想要学习 Zookeeper ,我们必须有以下技能:

  1. Java :Zookeeper 是基于 Java 语言开发的,这是学习 Zookeeper 最基本的要求;
  2. Linux :Zookeeper 一般都是部署在 Linux 上的,所以我们需要知道如何操作 Lunix ,以及如何部署 Zookeeper ;
  3. 分布式开发:Zookeeper 作为分布式环境中重要的组件,我们必须了解什么是分布式项目,如何去开发分布式项目,以及分布式的项目会遇到什么问题。

7. 课程设计思路

在 Zookeeper 的课程中,我们的学习路线从 Zookeeper 的基础知识入门,到简单使用 Zookeeper ,再到 Zookeeper 的实现原理,最后使用 Zookeeper 进行应用实战,一步一步从入门到 Zookeeper 应用高手。以下是 Zookeeper 课程的学习路线:

  • Zookeeper 基础入门:
    包括 Zookeeper 的数据模型,Zookeeper 安装及部署,以及两种 Zookeeper 的 Java 客户端的初步使用,有了扎实的基础我们才能深入学习它的实现原理;
  • Zookeeper 实现原理:
    包括 Zookeeper 通信原理,Zookeeper 监听机制,Zookeeper ACL,Zookeeper 序列化方式,Zookeeper ZAB 协议。其中重点是 Zookeeper ZAB 协议,包括两种运行模式:崩溃恢复模式和消息广播模式。了解了 Zookeeper 的实现原理,我们才能更好的来使用 Zookeeper;
  • Zookeeper 应用实战:
    在 Zookeeper 实战内容中,我们使用 Zookeeper 实现了分布式锁、分布式 ID、负载均衡、配置中心、集群管理等,学习了如何使用了高效的部署方式 —— Docker 来构建我们的 Zookeeper 集群,以及如何对 Zookeeper 的 Java 进程和运行状态进行监控,最后我们还学习了在 Kafka 和 Dubbo 两大框架中是如何使用 Zookeeper 的。

相信通过这些内容的学习,同学们一定会熟练的掌握 Zookeeper,并使用 Zookeeper 解决在实际的开发中遇到的分布式环境所带来的问题。

8. 小结

本节课程我们主要了解了 Zookeeper 是什么,Zookeeper 的特点。我们来对本节内容进行总结:

  • Zookeeper 是一种分布式协调服务。
  • Zookeeper 的应用有服务注册与发现,分布式锁,配置管理。
  • Zookeeper 的特点:集群的高可用性,数据的一致性、原子性,执行的顺序性,实时性。
  • Zookeeper 优缺点:Zookeeper 是 CP 系统,在保证数据一致性的同时,不能保证服务注册的高可用。
  • 划线
  • 写笔记
  • 复制

0/1000

 

下一节

Zookeeper 数据模型

我要提出意见反馈
· 最近更新于 请填写更新时间
使用手机查看
最近更新
向你推荐
更多
索引目录
Zookeeper 简介
1. 前言
2. 什么是 Zookeeper
3. Zookeeper 的应用
4. Zookeeper 的特点
5. Zookeeper 与其他技术的比较
6. 学习 Zookeeper 的必要条件
7. 课程设计思路
8. 小结
意见反馈 收藏教程 标记书签
使用 Ctrl+D 可将网站添加到书签
  • 企业服务
  • 网站地图
  • 网站首页
  • 关于我们
  • 联系我们
  • 讲师招募
  • 帮助中心
  • 意见反馈
  • 代码托管

Copyright© 2025 imooc.com All Rights Reserved | 京ICP备12003892号-11 京公网安备11010802030151号

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

返回顶部