Flink组件一:state

1.state

1.1.状态管理:

flink有两种状态:keyedState和operatorState

statekeyedStateoperatorState
支持的算子keyedState只能用在keyedStream的算子中每个key对应一个state可以用于所有算子常用于source,例如:FlinkKafkaConsumer
key和state一个operator实例处理多个key,访问相应的多个state并发改变,State随着key在实例中迁移一个operator实例对应一个state并发改变时,有多种重新分配方式可选:1.均匀分配 ;2.合并后每个得到全量
接口实现通过runcontext访问:RichFunction实现CheckPointed接口或ListCheckPointed接口
支持的数据结构valueState,ListState,ReducingState,AggregatingState,MapStateListState

KeyedState 和 OperatorState 都有两种形式存在:
1、原始状态 RawState
原始状态,是由用户自行管理状态具体的数据结构,框架在做 checkpoint 的时候,使用 byte[]来读写内容,对其内部数据结构一无所知
2、托管状态 ManagedState
托管状态是由 Flink 框架管理的状态
通常,在 DataStream 上的状态,推荐使用托管的状态,当实现一个用户自定义的 Operator的时候,会使用到原始状态

RawStateManagedState
状态管理方式用户自己管理 需要自己序列化FlinkRuntime管理 自动存储,自动恢复 内存管理上有优化
状态数据结构字节数组:byte[]已知的数据结构:value,map,list…
推荐使用场景自定义operator时可使用大多数情况下均可使用

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值