Flink Queryable State小结

  • Queryable State的功能目前是beta版本,flink1.7的发行版默认没有开启,要开启的话,需要将flink-queryable-state-runtime_2.11-1.7.0.jar拷贝到/opt/flink/lib/目录下,这样子task manager启动的时候会打印诸如Started Queryable State Proxy Server @ /172.20.0.3:9069的日志,这样子就可以确认是启用了该功能.
  • Queryable State在架构上涉及三个组件,一个是QueryableStateServer,它会在每个task manager上运行,负责本地state存储;一个是QueryableStateClientProxy,它也在每个task manager上运行,负责接收client发来的查询请求,然后从对应的task manager上获取对应的state,然后返回给client;一个是QueryableStateClient,它就是通常是运行在flink cluster之外,用于提交用户的state query.
  • QueryableStateServer以及QueryableStateClientProxy均有ports、network-threads、query-threads的属性可以配置;QueryableStateServer默认的query.server.ports值为9097;QueryableStateClientProxy默认的query.proxy.ports值为9096,client端需要使用这个端口来进行请求.
  • 声明state为queryable有两个方法,一个是通过KeyedStream.asQueryableState方法转为QueryableStateStream;一个是调用Managed keyed State的StateDescriptor的setQueryable进行声明;这两个的区别在于asQueryableState必须是直接作用于KeyedStream对象,因此KeyedStream就不能做后续的transform操作,类似于sink;而通过StateDescriptor的setQueryable进行声明则相对灵活一点;这里要注意没有queryable ListState.
  • Queryable State目前有几点限制,一个是它生命周期跟task一样,在task运行完的时候就销毁了,没办法查询,后续可能支持在task完成之后查询;一个是目前的KvState的Notifications进行使用tell机制,后续可能改为ack模式;一个是目前query的statistics默认是禁用的,后续可能支持发布到metrics system
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Queryable State是指在分布式流处理系统中,可以通过查询来获取和检索的状态。在激活集群的queryable state功能后,需要将state设置为可查询的才能对外可见。有两种设置方式可以实现这一目的。 第一种方式是通过创建一个QueryStateStream,它作为一个sink,将输入数据转换为queryable state。可以使用asQueryableState方法来创建QueryStateStream,并传入查询状态的名称和状态描述符。对于不同类型的状态,可以使用不同的方法,如ValueState、ReducingState等。 第二种方式是通过stateDescriptor.setQueryable(String queryableStateName)方法,将state描述符所表示的keyed state设置为可查询的。这种方式可以在代码中具体实现,通过KeyedStream对象的asQueryableState方法来获取QueryableStateStream对象,从而提供可查询的状态值。 综上所述,Queryable State是指在分布式流处理系统中可以通过查询来获取和检索的状态。可以通过创建QueryStateStream或设置state描述符来实现状态的可查询性。 #### 引用[.reference_title] - *1* [Flink state(3)- Queryable State](https://blog.csdn.net/weixin_46021633/article/details/119036354)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Flink(九) 状态可查询 Queryable State](https://blog.csdn.net/weixin_44079636/article/details/119765090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值