zoukankan      html  css  js  c++  java
  • 运行复制的ZooKeeper 部署

    运行复制的ZooKeeper
    
    
    运行ZooKeeper 在一个独立模式下是方便评估的, 一些开发,和测试。
    
    但是在生产,你应该运行ZooKeeper 在复制模式。一个复制的servers group 在相同应用是被称为
    
    quorum(冲裁),在一个复制模式,所有的servers在冲裁有相同的配置文件的拷贝
    
    
    对于复制模式, 至少需要3台机器, 并强烈推荐你有一个奇数的服务器。
    
    
    如果你只有2个servers, 如果你是在这种情况下 如果其中一个故障,没有足够的机器来形成一个多数的冲裁。
    
    2个server 是天生不稳定的 相比一个单一的server,
    
     因为有两个单点故障。
    
    
    所需要的conf/zoo.cfg 文件对于复制模式是类似于在独立模式下,但是也有一些区别:
    
    tickTime=2000
    dataDir=/var/lib/zookeeper
    clientPort=2181
    initLimit=5
    syncLimit=2
    server.1=zoo1:2888:3888
    server.2=zoo2:2888:3888
    server.3=zoo3:2888:3888
    
    
    新的条目,initLimit=5 是超时时间 ZooKeeper 使用来限制
    
    ZooKeeper servers  在冲裁去连接leader的限制的时间长度。
    
    	
    Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在initLimit时间内完成这个
    
    工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会
    
    相应变长,因此在这种情况下,有必要适当调大这个参数了。(No Java system property)
    
    
    
    
    条目syncLimit=2 限制
    
    在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活
    状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。注意
    :不要把这个参数设置得过大,否则可能会掩盖一些问题。(No Java system property)
    
    
    所有这些超时, 你指定的时间单位是使用tickTime. 
    
    在这个例子中,timeout 对于initLimit  是5个 ticks 5 *2000 ,10秒
    
    
    最后, 注意2个端口号 在每个server name  " 2888" and "3888". 
    
    
    tickTime=2000
    initLimit=5
    syncLimit=2
    dataDir=xxxx/zookeeper/server1/data
    dataLogDir=xxx/zookeeper/server1/dataLog
    clientPort=2181
    server.1=127.0.0.1:2888:3888
    server.2=127.0.0.1:2889:3889
    server.3=127.0.0.1:2890:3890
    
    标红的几个配置应该官网讲得很清楚了,只是需要注意的是clientPort这个端口如果你是在1台机器上部署多个server,那么每台机器都要不
    
    同的clientPort,比如我server1是2181,server2是2182,server3是2183,dataDir和dataLogDir也需要区分下。 
    
    
    
    对等使用前面的端口连接到其他对等(peers).
    
    
    比如一个连接是需要,以便peers可以连接。
    
    比如,同意更新的顺序。 更具体说,
    
    
    一个 ZooKeeper server 使用这个端口来连接followers  到leader.
    
    
    当一个新的leader 出现,一个follwer 打开一个TCP 连接到leader 使用这个端口。
    
    
    
    因为默认的leader 选取也使用TCP,我们当前需要另外的端口用于leader 选取,这个第2个端口在服务器的入口
    
    
    
    如果你需要测试不同的server 在一个单独的机器上, 指定servername 作为本地 使用一个唯一的冲裁 
    
    leader 选举端口(2888:3888, 2889:3889, 2890:3890 in the example above) 对于每个服务器
    
    当然单位的dataDirs  和不同的clientPorts 也需要

  • 相关阅读:
    1442. Count Triplets That Can Form Two Arrays of Equal XOR
    1441. Build an Array With Stack Operations
    312. Burst Balloons
    367. Valid Perfect Square
    307. Range Sum Query
    1232. Check If It Is a Straight Line
    993. Cousins in Binary Tree
    1436. Destination City
    476. Number Complement
    383. Ransom Note
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350535.html
Copyright © 2011-2022 走看看