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. java操作ceph之rbd基本操作

    一.安装librados和librbd Ceph存储集群提供了基本的存储服务,允许Ceph在一个统一的系统中唯一地传送对象,块和文件存储. 但是,不限于使用RESTful,块或POSIX接口. 基于R ...

  2. 32 取一个整数a从右端开始的4-7位

    题目:取一个整数a从右端开始的4-7位 public class _032FetchDigit { public static void main(String[] args) { fetchDigi ...

  3. javascrip总结42:属性操作案例: 点击盒子,改变盒子的位置和背景颜色

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  4. CodeForces 427A Police Recruits (水题)

    题意:给定 n 个数,有正数和-1, -1表示罪犯,正数表示招了几个警察,一个警察只能看一个罪犯,并且要按顺序,问你有多少罪犯逃脱. 析:很简单么,从开始扫到最后,把是正数就加上,是-1判断剩余警察大 ...

  5. CodeForces 690C1 Brain Network (easy) (水题,判断树)

    题意:给定 n 条边,判断是不是树. 析:水题,判断是不是树,首先是有没有环,这个可以用并查集来判断,然后就是边数等于顶点数减1. 代码如下: #include <bits/stdc++.h&g ...

  6. C++11中的tuple应用:让函数返回多个值

    在没有tuple之前,如果函数需要返回多个值,则必须定义一个结构体,有了C++11,可以基于tuple直接做了,下面是个示例: // 编译:g++ -std=c++11 -g -o x x.cpp # ...

  7. hibernate通过SQL更新数据

    @Resource(name = "hibernateTemplate") public HibernateTemplate hibernateTemplate; /** * @T ...

  8. android的样式(style)与主题(theme)

    Android上的Style分为了两个方面: 1,Theme是针对窗体级别的,改变窗体样式: 2,Style是针对窗体元素级别的,改变指定控件或者Layout的样式. Android系统的themes ...

  9. sh脚本

    通过. xxx.sh执行 经常在第一行加上#!/bin/bash,表示需要使用的bash shell环境 关于#!/bin/bash和#!/bin/sh 可以直接放linux命令 使用for循环 使用 ...

  10. leetcode 19. 删除链表的倒数第N个节点 JAVA

    题目: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链 ...