美文网首页
ZooKeeper处理写请求时序和Observer

ZooKeeper处理写请求时序和Observer

作者: 金果儿 | 来源:发表于2020-03-03 15:38 被阅读0次

    如下图,节点2是leader

    1. 客户端向节点1发起一个写请求,客户端和节点1建一个session
    2. 节点1将写请求转发给节点2
    3. 节点2向所有节点发起propose
    4. 其他节点收到propose后,返回给节点2一个accept消息
    5. 节点2收到大多数节点的accept消息后,向所有节点发送commit消息。
    6. 节点1收到commit消息后,响应客户端写请求成功


    Observer

    Observer不参加ZooKeeper的事务提交和选举。
    与其他节点的唯一交互是接收来自leader的inform消息,更新自己本地存储。


    Observer作用

    • 提升读性能
    • 实现跨数据中心的部署
      比如:
      我们需要部署北京和香港两地都可以使用的 ZooKeeper服务。我们要求北京和香港的客户端请求的延迟都低。因此,我们在北京换个香港都部署ZooKeeper节点。
      我们假设leader节点在北京。如果不使用observer,那么每个来自香港的写请求要涉及leader和每个香港follower节点之间的propose、ack、和commit三个跨区域消息。
      解决方案就是把香港的节点都设成observer。上面提到的propose、ack和commit消息都变成inform一个跨区消息。


    配置Observer

    相关文章

      网友评论

          本文标题:ZooKeeper处理写请求时序和Observer

          本文链接:https://www.haomeiwen.com/subject/wcfhlhtx.html