Flink中的三种状态管理器

Flink中的状态管理器

flink提供了三种状态管理器分别是:

  • 基于内存的MemoryStateBackend
  • 基于文件系统的FsStateBackend
  • 基于RockDB的RocksDBStateBackend

1. MemoryStateBackend

MemoryStateBackend将状态数据全部存储于JVM堆内存中。MemoryStateBackend是Flink的默认状态管理器。状态数据包括用户使用的DataStream API创建的Key/Value State、窗口中缓存的状态数据和触发器等数据。基于内存的状态管理器速度快且高效,但具有内存容量有限等限制。一旦存储的状态数据过多就会导致系统内存溢出等问题。内存数据的易失性,如果机器出问题,整个主机内存中的状态数据就会丢失,进而无法恢复任务中的状态数据。因此MemoryStateBackend存在数据安全性问题,不建议用户在生产环境中使用。

  MemoryStateBackend可以通过配置来使用异步快照(Asynchronous Snapshots)。通过异步快照可以避免阻塞管道(Blocking Pipelines),目前是默认开启,当然也可以通过MemoryStateBackend的构造函数配置进行关闭:

new MemoryStateBackend(MAX_MEM_STATE_SIZE, false);

其中MAX_MEM_STATE_SIZE指定每个状态值最大的内存使用大小。

MemoryStateBackend特点

  1.   聚合状态(Aggregate
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值