1、概述

      1.1  Zookeeper解决了什么问题

            分布式环境中    协调和管理服务    是一个复杂的过程;

            Zookeeper通过  其简单的架构和API  解决了这个问题,Zookeeper允许程序员可以专注于核心应用程序逻辑,而不必担心应用程序的分布式特性;

      1.2  Zookeeper架构

            

            Client(客户端)

               分布式集群中的一个节点,从Zookeeper服务器访问消息;

            Server(服务器)

               Zookeeper总体中的一个节点,为客户端提供服务;

            Ensemble(ZooKeeper服务器组)

               形成ensemble所需的最小节点数为3;

            Leader

               服务节点,当连接任何节点都失败时,将自动执行恢复,Leader将被选出;

            Follower

               跟随Leader指令的节点; 

            Session(会话)

               会话对于ZooKeeper的操作非常重要;

               会话中的请求按FIFO顺序执行;

               一旦客户端连接到服务器,将建立会话并向客户端分配会话ID ;

               客户端以特定的时间间隔发送心跳以保持会话有效。如果ZooKeeper集合在超过服务器开启时指定的期间(会话超时)都没有从客户端接收到心跳,则它会判定客户端死机。

               会话超时通常以毫秒为单位。当会话由于任何原因结束时,在该会话期间创建的临时节点也会被删除。

            Watches(监视)

               监视是一种简单的机制,使客户端收到关于ZooKeeper集合中的更改的通知;

               客户端可以在读取特定znode时设置WatchesWatches会向注册的客户端发送任何znode(客户端注册表)更改的通知。

               Znode更改是与znode相关的数据的修改或znode的子项中的更改。只触发一次watches。如果客户端想要再次通知,则必须通过另一个读取操作来完成。当连接会话过期时,客户端将与服务器断开连接,相关的watches也将被删除。

      1.3  Zookeeper工作流

            一旦Zookeeper启动后,它将等待客户端的连接;

      1.4  Zookeeper安装

            Zookeeper服务器是用java编写的,需要运行在JDK1.6及以上;

      1.5  Zookeeper命令

            ./zkServer.sh start  

                Zookeeper服务器启动

            ./zkServer.sh stop

                Zookeeper服务器停止

            ./zkCli.sh

                Zookeeper客户端启动

            quit

                客户端退出

            ls /

                查看注册的dubbo服务

            ls /dubbo-***

                查看Dubbo对外提供的服务接口

            ls /dubbo-***/接口名称/consumers

                查看某个Dubbo接口的消费者

            ls /dubbo-***/接口名称/providers

                查看某个Dubbo接口的提供者

      1.6  zkCli

            Zookeeper命令行界面(Cli)用于    与Zookeeper集合进行交互以进行开发;

             要执行zkCli,首先需要先打开zkServer(zkServer.sh start),再打开zkCli(zkCli.sh);

Zookeeper---系统学习的更多相关文章

  1. ZooKeeper的学习与应用

    近期大概学习了一下ZooKeeper,本身并没有深入.LGG尝试着在虚拟机里面搭了平台,看了看一些教材,从网上到处看别人的博文并引用之,还请各位大牛们谅解我的剽窃.现总结例如以下. 1. ZooKee ...

  2. [转]ZooKeeper的学习与应用

    [转]ZooKeeper的学习与应用 http://blog.csdn.net/rengq126/article/details/7393227 1. ZooKeeper的学习与应用 1.1. 概述 ...

  3. Dubbo -- 系统学习 笔记 -- 示例 -- 静态服务

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 静态服务 有时候希望人工管理服务提供者的上线和下线,此时需将注册中心标识为非动态管 ...

  4. Dubbo -- 系统学习 笔记 -- 依赖

    Dubbo -- 系统学习 笔记 -- 目录 依赖 必需依赖 缺省依赖 可选依赖 依赖 必需依赖 JDK1.5+ 理论上Dubbo可以只依赖JDK,不依赖于任何三方库运行,只需配置使用JDK相关实现策 ...

  5. 零基础如何系统学习Java Web

    零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...

  6. Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇

    前言 前一篇 Unity3D 装备系统学习Inventory Pro 2.1.2 总结 基本泛泛的对于Inventory Pro 这个插件进行了讲解,主要是想提炼下通用装备系统结构和类体系.前两天又读 ...

  7. MES系统学习

    MES系统是当今制造型企业信息化的热点,而统一建模语言UML是面向对象建模的标准语言,在软件工程发挥着重要作用.MES系统如何进行UML建模呢,今天和大家重点讨论一下MES系统的UML建模方法,请看本 ...

  8. 001 今天开始系统学习C#

    2016-01-16 之前只是大概了解过c#语言,感觉掌握不牢靠.现在开始系统学习C#.现以该博客作为学习笔记,方便后续查看.C# 目标:系统掌握c#知识 时间:30天 范围:C#基础,Winform ...

  9. Apache-Shiro+Zookeeper系统集群安全解决方案之缓存管理

    上篇[Apache-Shiro+Zookeeper系统集群安全解决方案之会话管理],解决了Shiro在系统集群开发时安全的会话共享问题,系统在使用过程中会有大量的权限检查和用户身份检验动作,为了不频繁 ...

  10. Linux系统学习笔记:文件I/O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

随机推荐

  1. [GO]可见性

    GO的可见性:如果想使用别的包的函数.结构体类型.结构体成员 函数名.结构体类型.结构体成员变量名的首字母必须是大写,则为可见,反之,则只能在一个包里使用 比如本来就有一个项目叫awesomeproj ...

  2. 【转】jvm 堆内存 栈内存 大小设置

    原文地址:http://blog.csdn.net/qh_java/article/details/46608395 4种方式配置不同作用域的jvm的堆栈内存! 1.Eclise 中设置jvm内存: ...

  3. 执行“hdfs dfs -ls”时报ConnectException

    原因可能是指定的端口号不对,该端口号由hdfs-site.xml中的属性"dfs.namenode.rpc-address"指定,即为NameNode的RPC服务端口号. 文件上传 ...

  4. 9.29学习的js基础

    js基础 1.三种js引入方式    a).<input type="button" value="点击事件" onClick="documen ...

  5. CodeForces 47E. Cannon(离线暴力+数学)

    E. Cannon time limit per test 3 seconds memory limit per test 256 megabytes input standard input out ...

  6. CSS选择器与jQuery选择器的异同:一些特殊的选择器

    在CSS3选择器标淮草案定义的选择器语法中,jQuery支持相当完整的一套子集,同时还添加了一些非标准但很有用的伪类.下面是一些jQuery扩展的选择器:(来自http://www.cnblogs.c ...

  7. python中用ElementTree.iterparse()读取xml文件中的多层节点

    我在使用Python解析比较大型的xml文件时,为了提高效率,决定使用iterparse()方法,但是发现根据网上的例子:每次if event == 'end':之后elem.clear()或者是每次 ...

  8. java学习(二)运算符

    一.运算符 赋值运算符:=  +=  -=  *=  /=  %= 算术运算符:+ - *  /  %   ++   -- int x = 3;  int y = 4   int c = x*1.0 ...

  9. [修正] Firemonkey Windows 控件有虚线残影问题

    说明:在 Wndows 显示时,有时控件左方会显示一条虚线 适用:Firemonkey Windows (Berlin 或更高版) 修正方法: 请将源码 FMX.Canvas.D2D.pas 复制到自 ...

  10. Java中的多态方法

    public class Main { public void test(Object o) { System.out.println("Object"); } public vo ...