2021-03-10

12 篇文章 0 订阅
9 篇文章 0 订阅

zk客户端会产生两种类型的watcher

  • new Zookeeper()构造zk客户端对象时注册的watcher:不是一次性的,只当连接状态变化时被触发
  • zkclient.exists(),监控锁节点方法注册的watcher:一次性,当监控节点增(create)、删(delete)、改(set)时被触发

3类线程

  1. 主线程:在启动所有服务后开始循环等待
  2. HealthMonitor线程:定期检查NN服务状态和健康状况
  3. zk客户端线程:监控zookeeper上结点的状态,发生变化时,回调ZKFailoverController的回调函数,通知ZKFailoverController,做出相应的变化

3个proxy

  1. ZKFC对本节点NN健康检查

    超时时间:“ha.health-monitor.rpc-timeout.ms” 默认45s

    最大重试次数:“ipc.client.connect.max.retries”,在代码中被set为1,即失败后会重连一次

    重连间隔:“ipc.client.connect.retry.interval” 默认1s,在我们集群中设置为10s。

    和NN RPC通信地址:根据"dfs.namenode.lifeline.rpc-address.nsId.nnId"。如果没有指定该配置项,则和2、3的地址相同。

  2. ZKFC对另一个节点的NN fence

    超时时间:“ha.failover-controller.graceful-fence.rpc-timeout.ms” 默认5s

    最大重试次数:“ipc.client.connect.max.retries” 在代码中被set为1,即失败后会重连一次

    重连间隔:“ipc.client.connect.retry.interval” 默认1s,在我们集群中设置为10s。

    和NN RPC通信地址:先根据"dfs.namenode.servicerpc-address.nsId.nnId",没有再根据"dfs.namenode.rpc-address.nsId.nnId",若这些配置项中没有指定端口,则默认端口为8020。在我们的配置中已指定端口为9000。

  3. ZKFC对本节点的NN转换状态(becomeActive/Standby)

    超时时间:“ha.failover-controller.new-active.rpc-timeout.ms” 默认60s

    最大重试次数:“ipc.client.connect.max.retries” 在代码中被set为1,即失败后会重连一次

    重连间隔:“ipc.client.connect.retry.interval” 默认1s,在我们集群中设置为10s。

    和NN RPC通信地址:先根据"dfs.namenode.servicerpc-address.nsId.nnId",没有再根据"dfs.namenode.rpc-address.nsId.nnId",若这些配置项中没有指定端口,则默认端口为8020。在我们的配置中已指定端口为9000。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值