题目:zk的session机制

参考答案

zookeeper会为每个客户端分配一个session,类似于web服务器一样,用来标识客户端的身份。

session的作用:

  • 客户端标识
  • 超时检查
  • 请求的顺序执行
  • 维护临时节点的生命周期
  • watcher通知

session的状态:

  • CONNECTING
  • CONNECTED
  • RECONNECTING
  • RECONNECTED
  • CLOSED

session的属性:

  • SessionID:会话ID,全局唯一
  • TimeOut:会话超时时间
  • TickTime:下次会话超时时间点
  • isClosing:会话是否已经被关闭

sessionID的构成:

  • 高8位代表创建Session时所在的zk节点的id
  • 中间40位代表zk节点当前角色在创建的时候的时间戳
  • 低16位是一个计数器,初始值为0