zoukankan      html  css  js  c++  java
  • 3、ZooKeeper架构

    ZooKeeper总体架构

    应用使用ZooKeeper客户端使用ZooKeeper服务。ZooKeeper客户端负责和ZooKeeper集群的交互。ZooKeeper集群可以有两种模式:standlone模式和quorum模式。处于standlone模式的ZooKeeper集群还有一个独立运行的ZooKeeper节点。处于quorum模式的ZooKeeper集群包含多个ZooKeeper节点

    Session

    ZooKeeper客户端库和ZooKeeper集群中的某个节点创建一个session。客户端可以主动关闭session。另外如果ZooKeeper节点没有在session关联的timeout时间内收到客户端的消息的话,ZooKeeper节点也会关闭session。另外ZooKeeper客户端库如果发现链接的ZooKeeper出错,会自动和其他ZooKeeper节点建立连接

    Quorum模式

    处于Quorum模式的ZooKeeper集群包含多个ZooKeeper节点。下图的ZooKeeper集群有3个节点,其中节点1是leader节点,节点2和节点3是follower节点。leader节点可以处理读写请求,follower只可以处理读请求。follower在接到写请求时会把写请求转发给leader来处理

    数据一致性

    全局可线性化写入:先到达leader的写请求会被先处理,leader决定写请求的执行顺序

    客户端FIFO顺序:来自给定客户端的请求按照发送顺序执行

    3节点Quorum集群==》3个配置文件,dataDir和clientPort配置项要配置不同的值

    server.1=127.0.0.1:3333:3334==》3333是用于quorum通信的端口,3334是用于leader选举的端口

    还要为每个ZooKeeper节点创建myid文件

    启动集群:

    zkServer.sh start-foreground src/main/resources/quorum/zoo-quorum-node1.cfg

    start-foreground选项zkServer.sh在前台运行,把日志直接打到console。如果把日志打到文件的话,这三个zkServer.sh把日志打到同一个文件

    启动客户端使用三节点的集群:zkCli.sh -server 127.0.0.1:2181, 127.0.0.1:2182, 127.0.0.1:2183

  • 相关阅读:
    mongodb安装错误以及原理
    animate.css使用
    JavaScript面向对象的方式开发轮播图插件
    数组/对象深拷贝
    JavaScript中数组的方法和字符串方法总结
    远程管理命令
    python+selenium 滑动滚动条的操作
    远程管理命令:
    文件和目录命令二:
    文件和目录命令一:
  • 原文地址:https://www.cnblogs.com/liushoudong/p/13335017.html
Copyright © 2011-2022 走看看