当前位置: 首页 > news >正文

第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客户端具有断线重连等优势,操作更加方便。

相关文章:

  • 每天一道面试题@第四天(Java基础)
  • 如何查看k8s获取系统是否清理过docker镜像
  • 通信原理第七版与第六版区别附pdf
  • 使用 TypeScript 开发并发布一个 npm 包(完整指南)
  • springmvc从请求到响应的流程分析
  • Node.js 事件循环和线程池任务完整指南​
  • 【Hive入门】Hive函数:内置函数与UDF开发
  • 计算机视觉与深度学习 | 双目立体匹配算法理论+Opencv实践+matlab实践
  • Mixture-of-Experts(MoE)原理与在DeepSeek中的应用
  • 61.微服务保姆教程 (四) Gateway---SpringCloud微服务网关组件
  • 【计算机视觉】目标检测:深度解析YOLOv9:下一代实时目标检测架构的创新与实战
  • 探索微服务入口:Spring Cloud Gateway 实战指南
  • 基于tabula对pdf中多个excel进行识别并转换成word中的优化(五)
  • Next框架学习篇 ✅
  • leetcode day37 474
  • ACTF2025 - WEB Excellent-Site
  • docker desktop汉化
  • docker排查OOM Killer
  • 第10次:电商项目配置开发环境
  • Ubuntu 20.04 安装 ROS 2 Foxy Fitzroy
  • 浦发银行一季度净利175.98亿增1.02%,不良率微降
  • 游客曝九寨沟打网约车被出租车围堵,官方:前者违规,后者做法不对
  • “上报集团文化助力区域高质量发展赋能平台”揭牌
  • 今年我国电影票房破250亿领跑全球,“电影+”带动文旅消费热潮
  • 经济日报:多平台告别“仅退款”,规则调整有何影响
  • 福建省莆田市原副市长胡国防接受审查调查