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