Zookeeper源码解析

本文主要探讨了Zookeeper框架如何解决分布式系统中的一致性问题,包括服务注册、发现及集群管理等核心功能。通过剖析Paxos算法,进一步解释Zookeeper如何确保数据的一致性和服务的高可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章 Zookeeper源码解析(zookeeper解决什么问题)

总结下阅读源码的技巧

1.这个框架,解决什么问题
2.尝试去了解这个框架解决问题原理,并且理解
3.框架的启动过程
4.从启动过分分析,框架运行的原理
5.结合 1.分析框架细节怎么解决这些问题

入手zookeeper框架

  1. zookeeper解决了什么问题

    1.zookeeper分注册中心,服务端,消费端(都需要引入zookeeper包)
    2.服务注册怎么实现,服务发现怎么实现,服务关闭后,消费端,又做了什么?
    3.怎么实现集群,当master挂掉后,怎么切换slave,并且master和slave怎么保证数据一致,
    切换过来后,完美替换master工作
    
  2. 尝试去了解这个框架解决问题原理,并且理解

    尝试去了解paxoy算法
    
  3. 分析zookeeper启动过程,并分析了解zookeeper 配置类(基本所有的框架都有启动Configuration类)
  4. 逐步分析启动过程,并猜测,一些方法作用
  5. 和1 进行比对,分析zookeeper整个工作原理

zookeeper解决什么问题

  1. zookeeper分注册中心,服务端,消费端(都需要引入zookeeper包)
  2. 服务注册怎么实现,服务发现怎么实现,服务关闭后,消费端,又做了什么?
  3. 怎么实现集群,当master挂掉后,怎么切换slave,并且master和slave怎么保证数据一致,
    切换过来后,完美替换master工作

Paxoy算法

  1. 抱着paxoy解决什么问题,好多博客,根本没讲明,上面就讲原理,根本看不懂

    假设这个场景:
            userServer.save(user);
            accountServer.update(user);
            accountServer.findAccount(user);
        这些都是分布式服务,可能网络延迟导致他们顺序有变动,如果顺序发生变动,
        对于业务逻辑时候毁灭型打击,paxoy一致性是保证这个过程一致,其实序列也
        可以做到一样的功能,但是效率太低
    

    这里就不细讲借鉴别人,讲的比较好的paxoy算法

源码阅读环境搭建

  1. githui拉下zookeeper源码后发现不能运行,百度下发现zookeeper不是java项目,需要ant编译,然后百度一方

2.编译阅读环境
参考:地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值