第35周Zookkeeper+Dubbo Zookkeeper

第35周ZooKeeper+Dubbo ZooKeeper

一、周介绍

本周主要内容包括ZooKeeper、Dubbo以及面试三部分。

1.1 ZooKeeper

  1. 节点介绍

    • ZooKeeper的数据结构核心是每个node节点。节点具有属性、特点和功能,其数据结构为树形结构,类似于多叉树,分隔符是一杠一杠的形式。
    • 节点特点包括可以存储数据(但数据要简洁)、具有树形结构且有父子节点之分、有版本号概念用于防止误操作、可以在节点上设置监听器以感知变化。
    • 节点类型包括持久节点和临时节点,以及顺序节点。顺序节点可以在节点后面加十位数字,保证在同一个父节点下顺序唯一。
  2. 节点常见命令

    • 掌握ZooKeeper的常见命令是基础内容,包括增删改查操作以及与版本号相关的高级命令。
    • 常用命令有:create(创建节点)、delete(删除节点)、get(获取节点信息)、set(修改节点内容)、ls(查看节点内容)等。
    • 高级命令涉及版本号、顺序节点和临时节点等内容,例如使用版本号可以避免误删除,顺序节点可以在节点后面加数字表示顺序。
  3. watch机制和acl权限控制

    • watch机制 :watcher机制是ZooKeeper的重要特性,相当于一个监视器,能够感知节点内容的变化、删除以及子节点的操作,并及时进行通知。适合使用它的场景包括配置中心等,当配置数据发生变化时,可以通知到监听的客户端。
    • acl权限控制 :acl权限控制机制包括create、read、write、delete以及admin五种权限。权限方案有Word权限(所有人均可操作)、OS权限(经过认证的用户可以使用)、OS+Digest权限(增加密码验证)、IP权限(仅特定IP可访问)等。
  4. 客户端开发

    • 原生客户端 :使用ZooKeeper提供的Java原生客户端可以进行节点的创建、连接、删除等操作,还可以进行监听事件的处理。
    • Curator客户端 :Curator客户端相比原生客户端具有优势,如断线重连功能。Curator提供了更便捷的操作方式,例如创建节点时可以指定临时或持久,设置节点值,进行增删改查操作,还可以实现永久监听。

1.2 Dubbo

  1. RPC调用

    • Dubbo是rpc领域的明星框架。在Dubbo下,各服务之间的关系以及如何进行rpc远程调用是重要的内容。Dubbo特别适合作为注册中心,可以整合Dubbo进行通信。
  2. 整合案例开发

    • 通过整合Dubbo开发多模块项目,利用Dubbo进行通信,与Spring Cloud的通信方式不同,Dubbo通过RPC调用减少对HTTP接口的依赖。在开发中对比RPC和HTTP的优劣,了解它们的区别。

1.3 面试讲解

  1. 线程进阶面试题

    • 对线程进阶的常见面试题进行系统性梳理,以问题和回答的形式演练如何回答这些问题,引导面试官。
  2. 分布式微服务面试题

    • 系统性梳理分布式微服务的知识,介绍与Spring Cloud、ZooKeeper等内容相关的面试题,如"你如何理解ZooKeeper?"以及"它在什么场景下适用?"等问题。

二、ZooKeeper章节介绍

2.1 ZooKeeper概述

ZooKeeper是一个重要的概念,用于解决分布式系统中的协调问题。它的诞生源于雅虎研究院的研究小组,旨在解决单点问题,提供一个高可用、数据一致的分布式协调框架。

2.2 ZooKeeper特点和作用

  1. 特点

    • 顺序一致性 :同一个客户端发送的请求会按照顺序生效。
    • 原子性 :要么全部成功,要么全部失败,没有中间结果。对于ZooKeeper集群的操作,它会保证集群中所有应用的状态是一致的。
    • 单一系统映像 :无论连接到哪一个服务器,其对外提供的数据都是一致的。
    • 可靠性 :执行一个内容后,该内容会被一直保留,除非有其他人对该内容进行更改。
    • 及时性 :对某一个服务器进行了数据操作,那么在一个特定的时间之内,所有的服务器都会看到该操作,并且应用成功。
  2. 作用

    • 分布式锁 :利用节点的唯一性特性,在分布式情况下,必须有一个全局唯一的标记,获取此标记即获得锁。
    • 配置中心 :利用ZooKeeper的监听能力(watcher),当某个节点的内容发生变化,所有监听过该节点的客户端都能收到通知。
    • 服务注册与发现 :可以用于保存与服务相关的信息,当有新服务出现或旧服务发生变化时,这些信息可以稳定地对外提供。
    • 分布式唯一ID :ZooKeeper能够对外提供统一一致的数据,可以用于生成唯一的ID,如在生成订单时确保每个订单号都是唯一的。

2.3 ZooKeeper安装配置

  1. Linux下安装

    • 下载ZooKeeper的最新版本,解压缩后进行配置。将conf/zoo_sample.cfg复制为zoo.cfg,修改其中的配置项,如tickTimeclientPort。使用bin/zkServer.sh脚本启动和关闭ZooKeeper服务。
  2. Windows下安装

    • 在Windows系统中,下载相应的文件并解压缩。执行.cmd文件启动服务,若未提前复制配置文件,可能会遇到报错。若配置已完成,执行该文件即可启动。
  3. Mac OS下安装

    • 支持通过brew进行安装,使用brew install命令即可完成安装。

2.4 ZooKeeper重要概念

  1. 节点ZNode

    • ZNode是ZooKeeper的基本数据单元,具有多种性质和特点。数据结构为树形结构,可以存储信息,但数据要尽量简洁。节点分为持久节点和临时节点,以及顺序节点。
  2. ZooKeeper命令

    • 掌握ZooKeeper的常用命令,包括增删改查操作以及高级命令。通过命令行对ZooKeeper进行实际操练,实现对节点的操作。

2.5 内容总结

ZooKeeper是一个分布式协调服务,用于解决分布式系统中的协调问题。它具有高可用、数据一致的特点,可以用于实现分布式锁、配置中心、服务注册与发现、分布式唯一ID等功能。安装配置过程相对简单,在Linux、Windows和Mac OS下都有相应的安装方法。通过命令行可以对ZooKeeper进行操作,完成节点的增删改查等操作。同时,ZooKeeper提供了watch机制和acl权限控制,用于监听节点的变化和控制权限。在客户端开发中,可以使用ZooKeeper的原生客户端和Curator客户端,Curator客户端具有断线重连等优势,操作更加方便。

相关推荐
xiaoxi6661 天前
Dubbo实战:四步实现注册中心平滑迁移
分布式·nacos·dubbo·注册中心
爬山算法1 天前
Dubbo(81)如何设计一个高可用的Dubbo服务?
dubbo
鸿蒙布道师2 天前
百度Create大会深度解读:AI Agent与多模态模型如何重塑未来?
人工智能·深度学习·神经网络·机器学习·百度·自然语言处理·dubbo
和算法死磕到底6 天前
ubantu18.04(Hadoop3.1.3)Hive3.1.2安装指南
大数据·数据库·hive·hadoop·mysql·hdfs·dubbo
Seven979 天前
JDK的SPI有什么缺陷?dubbo做了什么改进?
java·dubbo
爬山算法13 天前
Dubbo(56)如何进行Dubbo的日志管理?
dubbo
越学不动啦13 天前
八、自动化函数
运维·软件测试·自动化·dubbo·测试
爬山算法14 天前
Dubbo(45)如何排查Dubbo的序列化问题?
dubbo
爬山算法17 天前
Dubbo(48)如何排查Dubbo的负载均衡问题?
运维·负载均衡·dubbo