NIOServerCnxn

作者: 月半的瘦子 | 来源:发表于2019-04-15 10:49 被阅读0次

    NIOServerCnxn

    实现接口

    • Watcher(ZK客户端接收事件的,以callback)
      • KeeperState
      • EventType
      • process(WatchedEvent event)
    • ServerCnxn(来自客户端的连接)
      • 接口 Watcher
      • 属性
        • session-id
        • stat状态-延迟
        • sendResponse

    属性

    • ConnectionBean
      • 接口
        • ConnectionMXBean(代表客户端连接)
        • ZKMBeanInfo(JMX对象)
      • 属性
        • CnxnStats
          • AtomicLong 属性保证原子性
          • Channel 连接状态信息
        • ZooKeeperServer
          • 接口
            • SessionExpirer
            • ServerStats.Provider
          • 属性
            • ZooKeeperServerBean
            • DataTreeBean
          • f

    关键数据结构

    • DataTree
      • node节点全映射
        • ConcurrentHashMap<String, DataNode>
          • DataNode synchronized 保证同步
        • tree
      • WatchManager(dataWatches/childWatches)
        • HashMap<String, HashSet<Watcher>>
        • HashMap<Watcher, HashSet<String>>
      • synchronized保证同步

    Leader

    负责维护leader选举、状态同步

    数据发送以QuorumPacket
    传输方式socket->InputStream->BinaryInputArchive->write

    • Proposal
      • 内部类
        • Proposal
      • 属性
        • LearnerCnxAcceptor -》follower 接受线程
        • LearnerHandler -》Leader为follower创建的线程,由此线程负责处理与leader的会话
          • ReentrantReadWriteLock
        • AtomicLong follower个数

    相关文章

      网友评论

        本文标题:NIOServerCnxn

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