zoukankan      html  css  js  c++  java
  • zookeeper基本知识和zk作用体现

          有一段时间没写博客,今天想着把自己近几个月做的笔记分享一波。

          前两个月我一直在看zk的视频:https://coding.imooc.com/learn/list/201.html   从开始看这位老师的视频,到现在有一年多,觉得这位老师讲的很不错,所以分享一波,接下来,我们步入正题。

          

          第一:zookeeper主要目录结构
                    bin:主要的一些运行命令
     
                    conf:存放配置文件,其中需要修改zk.cfg
     
                    contrib:附加的一些功能
     
                    dist-maven:mvn编译后目录
     
                    docs:文档
     
                    recipes:案例demo代码
     
                     src:源码
         第二:配置文件简介
     
                   zoo.cfg配置
      
                   ticktime:用于计算的时间单元。比如session超时:N*ticktime
      
                  initLimit:用于集群,允许从节点连接并同步到master节点的初始化时间,以ticktime的倍数来表示。
     
                   syncLimit:用于集群,master主节点与从节点之间发送消息,请求和应答时间长度。(心跳机制)
     
                   dataDir:必须配置  zk相关存储的数据
     
                   dataLogDir:日志目录,不配置会和dataDir共用目录。
     
                   clientPort:连接服务器端口,默认2181
     
           第三:zk数据模型
             
                    zk:是一个树形结构,类似于前段开发组件tree.js
     
                    zk的数据模型也可以理解为Linux/unix文件目录:/usr/local.../
     
                    每个节点都称之为znode,它可以有子节点,也可以有数据
     
                    每个节点分为临时节点和永久节点,临时节点在客户端断开后就消失
     
                    每个zk节点都各自的版本号,可以通过命令行来显示节点信息
     
                    每个节数据发生变化,那么该节点的版本号会累加(乐观锁)
     
                    删除/修改过时节点,版本号不匹配则会报错
      
                    每个zk节点存储的数据不宜过大,几k即可
     
                    节点可以设备权限acl,可以通过权限来限制用户的访问。
           第四:zk作用体现
     
                      一:master节点选举,主节点挂了以后,从节点就会接受工作,并保证这个节点是唯一的,这也是所谓的首脑模式,从而保证我们的集群是高可用的。
     
                      二:统一配置文件管理,即只需要不熟一台服务器,则可以把相同配置文件同步更新到其他所哟与的服务器,次操作在云计算中用的特别的多(假设修改了redis统一配置)
     
                      三:发布与订阅,类似消息队列MQ(amq,rmq。。),dubbo发布者把数据存在znode上,订阅者会读取这个数据。
     
                      四:提供分布式锁,分布式环境不同进程之间争夺资源,类似于多线程中的锁。
     
                      五:集群管理,集群保证数据的强一致性。 主节点数据会同步到附属节点  客户端不管链接任何客户端的时候都会保证读取数据的一致性。
              
     
  • 相关阅读:
    《图解HTTP》简单的HTTP协议
    《图解HTTP》web及网络基础
    尚硅谷--雷丰阳--ElasticSearch 7.4.2版本 -- 有道云笔记
    ElasticSearch _bulk批量插入报错
    SpringBoot利用Filter来解决跨域问题
    js中数组的常用方法
    Mysql时间加减函数
    mybatis映射文件中不能使用">""<""&"问题
    博客园样式第二版
    GO学习笔记之 map
  • 原文地址:https://www.cnblogs.com/haoliyou/p/9375751.html
Copyright © 2011-2022 走看看