在我的程序中,我启用了检查点,
async authenticationHandler(): Promise<boolean> {
if (this.myToken) {
const result = await this._auth.validateToken(this.myToken).toPromise();
if (result.value) {
// TODO
console.log('AuthGuard: valid token');
this.loggedIn.next(true);
return true;
} else {
this.loggedIn.next(false);
this._router.navigate(['/login']);
return false;
}
} else {
this.loggedIn.next(false);
this._router.navigate(['/login']);
return false;
}
}
但是我还没有配置任何StateBackend。
检查点状态存储在哪里?我可以以某种方式检查这些数据吗?
答案 0 :(得分:1)
默认状态后端将工作状态保留在各种任务管理器的堆上,并将其备份到作业管理器堆。这就是所谓的MemoryStateBackend
。
没有API可直接访问状态后端中存储的数据。您可以模拟任务管理器故障,并观察到状态已恢复。而且,尽管没有工具可以直接检查这些保存点,但是如果您希望外部化状态,则可以触发一个保存点。
答案 1 :(得分:1)
这不是答案,只是对correct答案的一小部分。我不能写评论引起声誉。
如果您之前使用flink版本,则v1.5,则默认状态后端将将MemoryStateBeckend的异步快照设置为false。因此,在这种情况下,您将每5秒使用一次同步保存检查点(您的管道将每5秒钟阻塞一次以保存检查点)。
为避免这种情况,请使用显式构造函数:
env.setStateBackend(new MemoryStateBackend(maxStateSize, true));
从flink版本1.5.0开始,MemoryStateBackend默认情况下使用异步快照。
有关更多信息,请参见flink_v1.4 docs