0
点赞
收藏
分享

微信扫一扫

zookeeper源码解析--会话管理--LocalSessionTracker

慕容冲_a4b8 2022-01-27 阅读 39
public LocalSessionTracker(
	// 会话超期追踪
	SessionExpirer expirer,
	// 会话id--超时时间 
	ConcurrentMap<Long, Integer> sessionsWithTimeouts, 
	int tickTime, long id, ZooKeeperServerListener listener) 
{
    super(expirer, sessionsWithTimeouts, tickTime, id, listener);
}

// 追踪
// sessionsById中存在即为被追踪的
public boolean isLocalSession(long sessionId) 
{
    return isTrackingSession(sessionId);
}

// 全局--返回false
public boolean isGlobalSession(long sessionId) 
{
    return false;
}

// 创建会话
public long createSession(int sessionTimeout) 
{
	// 创建会话+提交会话
    long sessionId = super.createSession(sessionTimeout);
    commitSession(sessionId, sessionTimeout);
    return sessionId;
}

// 本地会话
public Set<Long> localSessions() 
{
	// sessionsWithTimeout是在提交操作时,形成的容器
    return sessionsWithTimeout.keySet();
}
举报

相关推荐

0 条评论