重识Zookeeper(一):zookepper简介

来源:互联网 发布:大数据算法设计与分析 编辑:程序博客网 时间:2024/05/14 07:29
  • 在项目中使用zookeeper多时,但是一般只是配合dubbox作为注册中心使用,只是停留在会用的阶段,特意抽出两天的时间重新学习zookeeper,以下为总结。分为几个部分。
  • zookeeper简介:
  • zookeeper基础:
  • zookeeper安装:
  • zookeeper集群安装:
  • zookeeper命令:
  • java开发使用zookeeper实例:

本文为第一篇:zookeeper简介。这个部分由几个问题说起:

  • zookeeper是什么框架?
    zookeeper是分布式的RPC框架。
    但是zookeeper远不止于此。zookeeper可以做的事儿太多了,例如配置一致,例如高可用,sub/pub等等。
    所谓分布式就是跨越多个物理主机,由部署在多个主机上的独立软件对外提供服务的架构,既然有多个组件,就涉及到多个服务的问题,如何保证服务的强一致性,有序性和持久性,这就是zookeeper要解决的问题,通俗来说,我们的软件相当于zookeeper服务端的客户端。

  • zookeeper解决了什么问题?
    zookeeper本身是用于分布式系统的任务协作,分布式系统一般有几个重大的问题需要解决,1,主节点崩溃恢复问题, 2,从节点崩溃的恢复 3,通讯故障处理 zookeeper提供了优雅的解决方案。 先简单介绍下解决方案,主节点崩溃的时候,zookeeper会重新选举主节点(数字最小的一个), 从节点崩溃时候,主节点重新分发任务。 通讯中断或者故障的时候,zookeeper会试着恢复从节点。
    zookeeper主要解决了分布式系统的数据一致性问题。

  • zookeeper试用的场景
    zookeeper并不是万能的,zookeeper的主要功能还是协同任务,所以数据存储上并不能存储大量的数据,zookeeper适用于数据量小并发高的系统。

  • zookeeper用了什么协议?
    zookeeper用的是zab协议,翻译为zookeeper原子广播消息,后续会有介绍。
    参见:http://blog.csdn.net/wangpengzhi19891223/article/details/75578153
    zab协议本身就是分布式一致性算法paxos算法的一种实现,这种算法是保证分布式系统正确执行的算法,涉及提议和选举两个步骤,来保证分布式个子系统之间对下一步执行什么操作有一个共识,参考:http://www.toutiao.com/a6315662880364740865/
    http://www.toutiao.com/a6420579712703234305/

    还有一个谷歌的框架和zookeeper很像,叫chubby, chubby并不是开源的,雅虎参考chubby设计思想开发了zookeeper,zookeeper的核心其实就是两点,第一个是选举算法,第二个是一致性算法,即zab。

java体系交流群:255453635 说明写CSDN