• Zookeeper集群


    客户端的使用见java包和官方文档

    Zookeeper集群

    • 读写分离:提高负载能力,并保障性能。
    • 主从自动切换:提高服务容错性。

    半数以上运行机制

    集群至少需要3台服务器,并且强烈建议使用奇数个服务器。因为zookeeper通过大多数节点的存活来判断整个集群是否可用。
    3个节点挂2个,认为已经挂掉,4个节点挂2个,也认为已经挂掉。

    集群角色

    • leader:主节点,写入数据
    • follower:子节点,读取数据,拥有投票权
    • observer:观察者,读取数据,无投票权
      leader挂了时服务会不可用,需要重新选举leader。

    选举机制

    • 每个节点都会默认将票投给自己,并且将投票结果告诉其他节点。
    • 各个节点会比较节点间的zx_id和my_id,zx_id较新的优先得票,zx_id相同时my_id大的优先得票。
      • tx_id分为高32位和低32位,高32位叫epoch,代表leader的生命周期(每次选出新的leader该值会加1),低32位代表当前leader周期内的变更次数。比较tx_id时优先比较高32位,后比较低32位。
    • 当投票超过总节点半数时,选出当前leader,后续选举时发现已经有leader节点了会直接跟随leader节点。
  • 相关阅读:
    HTTP Status 500
    并发编程的常见约束
    面试之数据库面试题
    HashMap实现原理
    数据结构二叉树知识点总结
    十大经典排序算法详细总结(含JAVA代码实现)
    tensorflow里面共享变量、name_scope, variable_scope等如何理解
    Mxnet学习资源
    测试1
    tensorflow prelu的实现细节
  • 原文地址:https://www.cnblogs.com/fcb-it/p/14670632.html
Copyright © 2020-2023  润新知