zookeeper学习笔记(四)—— 入门小记

zookeeper编程

  • zookeeper有一个java绑定和一个c绑定
  • c绑定的两种形式:单线程和多线程
  • 两种形式的区别在于如何循环消息以获取更多消息

主从复制的Zookeeper

在评估、开发和测试环境中。使用zookeeper独立模式

在生产模式中。应用主从复制模式。

相同应用中服务器主从复制组叫做 quorum , 并且在主从复制模式中,在quorum中的所有服务器有相同的配置文件副本

注意:如果使用zk的主从模式,至少3台服务器。并且建议基数服务器。
原因:1. 如果只有两台服务器,其中的一个故障的时候,没有足够的机器形成多数quorum。
2. 在本质上两台服务比单台服务更不稳定,因为有两个单点。

配置文件修改

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: 限定quorum中的Zookeeper服务器连接到Leader的超时时间。(eg.initLimit的超时时间是5个标记号,2000毫秒一个标记,就是10秒)
  • server.x: 列出了构成Zookeeper服务的服务器(eg.通过查找data目录中的myid文件知道是哪个服务。这个myid个文件包含了服务编号,用ASCII)
  • 端口号2888和3888:服务器节点使用前面的端口连接到其他节点。便于同事之间的通信(eg.对更新的顺序取得统一的意见)

一个Zookeeper的服务器用这个端口连接follower到leader。当一个新的leader产生时,follower使用这个端口打开一个TCP连接,连接到leader。因为默认的leader选举也使用TCP。我们现在需要另一个端口用来leader选举。这是在服务器条目的第二个端口


注意:在一台机器上测试多台服务器,在服务器配置文件为每个server.x指定servername为localhost,和独有的quorum & leader选举端口(也就是 2888:3888, 2889:3889, 2890:3890在上面的示例中)。当然分开dataDir和不同的clientPort也是非常重要的


优化:获取更新的低延迟,有一个专门的事务日志目录非常重要。默认情况下,事务日志作为一个数据快照和myid文件放入同一个目录。datalogDir参数指示一个不同的目录用于事务日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值