zookeeper入门学习

原创 2015年11月20日 15:20:58

     1. zk的强一致性

  • zk 有数据的写入着(数据生产者),数据的消费着;zookeeper 会启动一个watch的机制,实时监听和通知数据的消费者,
            当数据生产者有数据更新时,watch 会把数据更新尽快同步到所有的数据消费者,这样的方式来保证数据的强一致性       

       2. zk的选举功能

  •   对分布式存储(多个地方,最简单的就是多台机器来存储)来说,机器的leader 选举就很重要;zookeeper的选举原理很简单:
  •  zookeeper集群的每台机器都投一票(内部通信,检测到那台机器是ok的就投票),得票数最多的那台机器成为leader;
            所以我们zk集群都是偶数集群,如果是偶数会出现投票一样多的情况

       3. 分布式锁

  •   数据生产者写zk集群的数据,不能同时写,这样容易把数据写错或者覆盖,这时就需要锁机制,zookeeper 自己带了分布式锁,
              zk的client 可以直接调用分布式锁来实现。

       4. 选用zk的原因

  •  分布式锁可以用zk的不用自己写代码实现,数据的强一致性保障;
             分布式存储有很多方案:nosqp mgodb ,不一定选择zk

      5. zk 的使用场景 

  •  分布式锁:比如现在有100台机器(每台机器都有一个服务)同时修改另外一台机器上的某一个文件(可以是DB),怎么来保证这100台机器写文件不会把这个文件写坏,
这就是要用到分布式锁;就是每次写之前先建立一个分布式锁,锁住这个文件,当这次写完成后,再释放锁。--> 再分布式系统中分布式锁用的非常频繁,如果不用zookeeper,只能自己实现分布式锁,但要考虑到分布式锁的各种稳定性/容错性/其他特性,实现起来还是有一定难度的,如果这个分布式锁每个服务都自己做就会造成代码冗余;如果把分布式锁做成一个单独的基础功能组件,那就就是一个翻版的zookeeper,还不如直接用开源的zk呢

  • 主备服务的选举
现在任何一个系统都要避免单点设备故障;现在任何一个服务可以分成写服务和读服务,为了保证数据的唯一,一般写为一台;可以用zk 来实现机器主/备效果;2台机器(同样服务)注册到zk中,zk会给每个服务分配一个注册号,可以设置小的注册号为主;这样zk可以跟这些注册的服务进行健康监测;实时更新服务的状态;如果主服务失败,zk会删除这台机器,然后很快选择另外一台作为主服务


         6. zk 的数据模型

几乎每一个系统都会进行数据存储,zk 也不例外;zk 有自己的数据模型;采用文件的方式来保存数据,访问的数据格式也是类似文件系统的方式来访问:


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

zookeeper 入门学习(PPT)

  • 2011-03-09 16:54
  • 4.35MB
  • 下载

zookeeper入门学习(一)

使用dubbo的时候使用过zookeeper,但在面阿里的时候被问到还是有很多东西不清楚,因此决定系统的学习一下,计划如下 第一阶段:|—理解ZooKeeper的应用|---ZooKeeper是什么...

dubbo学习教程(一):完成入门第一个hello world程序【基于zookeeper】

一、为何使用dubbo服务来实现功能开发? 二、dubbo教程入门

zookeeper学习笔记(四)—— 入门小记

zookeeper编程 zookeeper有一个java绑定和一个c绑定 c绑定的两种形式:单线程和多线程 两种形式的区别在于如何循环消息以获取更多消息 主从复制的Zookeeper在评估、开发和测试...

zookeeper入门教程

  • 2016-03-24 13:52
  • 107KB
  • 下载

Zookeeper入门学习(二)--Zookeeper环境搭建

一、Zookeeper环境搭建 (1)搭建linux服务器,略; (2)下载zookeeper安装包到linux并解压,下面的介绍中将zookeeper解压到opt目录下,http://zookeep...

Dubbo+zookeeper 入门简单实例

  • 2017-03-23 11:53
  • 15.60MB
  • 下载

dubbo+zookeeper入门实例

  • 2017-03-29 09:57
  • 21KB
  • 下载

Zookeeper入门学习(三)--Zookeeper客户端使用

一、Zookeeper客户端1、ZooKeeper客户端 (1)使用SSH连接ZooKeeper服务器,然后进入到ZooKeeper安装目录下的bin目录下,然后使用./zkCli.sh -timeo...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)