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

  • 相关阅读:
    docker-5-容器数据卷
    docker-4-镜像
    docker-3-常用命令(下)
    docker-3-常用命令(中)
    docker-3-常用命令(上)
    docker-2-安装
    Python中Unicode字符串
    Python中整数和浮点数
    Python中什么是变量
    Python中数据类型
  • 原文地址:https://www.cnblogs.com/liushoudong/p/13335017.html
Copyright © 2011-2022 走看看