github开源项目
flink-note
的笔记。。
项目github地址: github
1. state是什么
flink的状态机制是实现有状态计算、flink容错的基石。flink允许在操作内部保存“状态”,例如下图中的MyApp应用具有三个算子Src, Proc和Sink,其中Src具有一个算子状态os1,Proc具有一个算子状态os2和两个监控状态ks1, ks2。
这么说可能有些抽象,举个小例子,假设说上面的Src算子是从kafka中读取数据的算子,那么os1这个状态就可能是一个map结构,其中key是kafka中的topic-partition,而value是对应的offest,这样flink就在状态中保存了当前的读取offest。
flink中的状态具有两种物理存储方法(状态后端):hashmap和rocksdb,详情可见flink状态后端详解。其在rocksdb上的存储结构可见下图: