弗林克运营商之间共享状态

问题描述 投票:1回答:1

这个问题已经被问here但因为它已经两年了,我不知道什么发生了变化。

我有,我想两个弗林克运营商之间共享状态的用例:

desired stream diagram

  • 流A是主要流,它连续地流动
  • B组仅仅是一个丰富的数据集。这是大的(几个GB)等将不适合作为广播流。
  • B组有与它关联的运营商(FlatMap,但可能是什么真正的),它作为一个国家装载机和加载丰富的数据为RocksDB为列表状态。 然后,我连接流,其中我想访问该被富集流中创建的相同状态。

最后,我知道我可以简单地加载整个状态后,流一直在使用“合作”功能连接。这只是从软件工程的角度的视图,分离责任纳入“国家装载机”类和实际的“数据浓缩塔”级显得更干净,所以我只是想知道这是否是可能的。

谢谢。

apache-flink flink-streaming
1个回答
1
投票
  1. 其实这很难“简单地加载整个状态”,因为你无法控制负载的排序。通常情况下,你会希望在处理任何主流(见FLIP-23)之前完全加载丰富的数据。
  2. 离开那个放在一边,我不认为它是“状态加载”。基本上你缓存在需要的地方富集数据(富集作用)。
  3. 最后,不,我不知道在弗林克一个简单的,内置的方式,以运营商之间共享状态。可以很明显的使用一些外部key-value存储,以实现这一目标,但(一)这是额外的基础设施,以及(b)它不会是为高性能。
© www.soinside.com 2019 - 2024. All rights reserved.