Flink / Scala 实战 - 5.ProcessFunction 之间共用缓存测试

一.引言

Flink 开发中有如下场景,数据需要经过两次 ProcessFunction 处理,第一步 ProcessV1 的一些信息重复不想通过每条数据传输至 ProcessV2,这时便捷的方法时对 ProcessV1 需要存储的元素进行去重缓存,保证全局共用一份缓存,可以有效减少储存空间,下面分别尝试三种缓存方式:

A.ValueState 缓存

B.HashMapCache 缓存

C.RedisCahce 缓存

Flink / Scala 实战 - 5.ProcessFunction 之间共用缓存测试_第1张图片

Tips:

后续测试均基于下述自定义 Source,该 Source 周期性产生一批数字并生成 InputData 类:

import org.apache.flink.streaming.api.functions.source.{RichSourceFunction, SourceFunction}

import java.util.concurrent.TimeUnit

class SourceFromCollection extends RichSourceFunction[InputData] {
  private var isRunning = true
  var start = 0

  override def run(ctx: SourceFunction.SourceContext[InputData]): Unit = 

你可能感兴趣的:(Flink,成长之路,Scala,Redis,flink,scala,cache)