ZooKeeper的介绍

1.什么是ZooKeeper

       ZooKeeper 是一个开源的分布式协调服务(基于k-v形式存储),用Java语言来开发的。由雅虎公司创建,是google chubby 的开源实现。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集(由若干条指令组成的,完成一定功能的一个过程),并且以一系列简单易用的接口提供给用户使用。

      总结:它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

2.ZooKeeper主要解决什么问题

        ZooKeeper出现,主要解决:分布式进程锁的问题,协调访问服务的顺序性

3.ZooKeeper是如何起源的

       参考:1.分布式架构演进过程

      ①初期开发,单工程部署至单个服务器来提供服务;

      ②随着业务需求的变化,我们会将工程根据模块进行拆分;例如:我们将工程拆分为①用户模块  ②订单模块  ③商品模块

      ③随着访问量的增多。订单模块是非常重要的服务,需要大量的访问,为了提高后端吞吐量,则需要对订单模块进行大规模集群,可能是上千个节点

      ④对订单服务进行集群(比如100台机器)。如果用户模块调用订单模块,则需要维护100个地址,商品模块调用订单模块,也需要维护100个地址,模块越来越多,每个模块都得维护这100个地址,这100个地址主要还都是一样子的

      ⑤分布式架构,每个模块都部署在一台服务器上,多个模块之间是多进程模式,每个服务都是独立部署的,要解决资源共享的话,synchronized是无法解决的(synchronized用来解决一个进程中线程锁问题),所以ZooKeeper就出世了

      ⑥ZooKeeper的出现,主要完成:①协议地址的维护   ②负载均衡机制(100个节点,比如用户模块调用订单模块,具体应该调用到订单模块的哪个服务器,就不得而知了,使用ZooKeeper便能够帮我们解决这个问题)   ③服务动态上下线感知

      ⑦ZooKeeper单点问题,有问题后整个服务也会瘫痪,所以ZooKeeper也需要通过集群,来满足高可用

      ⑧为ZooKeeper做集群,此时又会出现ZooKeeper集群数据同步问题

      ⑨数据同步问题,满足CAP原则(数据一致性、高可用性、分区容错性,三者不可兼得)


博主写作不易,来个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扛麻袋的少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值