Zookeeper第二天

来源:互联网 发布:免费字体软件 编辑:程序博客网 时间:2024/05/22 01:58

zoo_sample.cfg参数详解

  • tickTime=2000

ZooKeeper使用的基本时间单位(以毫秒为单位)。它用于做心跳,最小session超时将是tickTime的两倍。也就是每到tickTime时间就会发送一个心跳。

  • initLimit=10

官方文档说:initLimit是超时值,ZooKeeper用来限制仲裁中的ZooKeeper服务器必须连接到leader的时间长度。
也就是说用来配置Zookeeper接收客户端(这里所说的客户端不是用户链接Zookeeper服务器的客户端,而是Zookeeper服务器集群中连接到leader的Follower服务器)初始化连接是最长能忍受多少个心跳的时间间隔数。当已经超过10个心跳的时间(也就是tickTime)长度后Zookeeper服务器还没有收到客户端返回的信息,那么表明这个客户端连接失败。总的时间长度就是10*2000=20秒

  • syncLimit=5

syncLimit限制了follower可以从leader处过期多久(请求时间长度),最长不能超过多少个tickTime的时间长度。

  • dataDir=/tmp/zookeeper

存储内存数据位置,除非另外指定,那么更新数据库的事务日志也会存储在这里。
优化:为了在更新时获得较低的延迟,有一个专用的事务日志目录很重要。默认情况下,事务日志与数据快照和myid文件放在同一个目录中。dataLogDir参数指示用于事务日志的不同目录。

  • clientPort=2181

监听客户端连接的端口

  • server.1 = zoo1:2888:3888
  • server.2 = zoo2:2889:3889
  • server.3 = zoo3:2890:3890

表单server.X列出了组成ZooKeeper服务的服务器。当服务器启动时,它通过在数据目录中查找文件myid来知道它是哪个服务器 。该文件包含ASCII码的服务器号码。

最后,记下每个服务器名称后的两个端口号:“2888”和“3888”。节点之间使用以前的端口连接。这样的连接是必要的,以便节点可以连接,例如,就更新顺序达成一致。更具体地说,一个ZooKeeper服务器使用这个端口将followers 连接到leader。当一个新的leader出现时,一个followers使用这个端口打开一个到leader的TCP连接。因为默认leader当选也使用TCP,所以我们目前需要另一个leader当选。这是服务器条目中的第二个端口。

Note:
如果要在单台计算机上测试多台服务器,请将服务器名称指定为唯一localhost和leader当选端口的本地主机(即上述示例中的2888:3888,2889:3889,2890:3890)配置文件。当然,独立DATADIR S和独特CLIENTPORT s为也是必要的(在上面的复制例如,在一个运行的本地主机,你仍然有三个配置文件)。
请注意,在一台机器上设置多个服务器不会产生任何冗余。如果发生了导致机器死机的事情,所有的zookeeper服务器都将处于脱机状态。完全冗余要求每台服务器都有自己的机器。它必须是一个完全独立的物理服务器。同一物理主机上的多个虚拟机仍然容易出现该主机的完全故障。

原创粉丝点击