NIOServerCnxn

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
        • DataNode synchronized 保证同步
      • tree
    • WatchManager(dataWatches/childWatches)
      • HashMap>
      • HashMap>
    • synchronized保证同步

Leader

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

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

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

你可能感兴趣的:(NIOServerCnxn)