Flink 什么时候使用 CoProcess 函数?

Sha*_*dra 1 apache-flink flink-streaming

我只是想了解何时在 Flink 中使用 CoProcessFunction 的用例。用一个例子来解释将帮助我更好地理解这个概念。

Dav*_*son 8

CoProcessFunction 类似于 RichCoFlatMap,但还可以使用计时器。例如,计时器对于过期密钥的过期状态或在保持活动消息未能到达时发出警报很有用。

CoProcessFunction 允许您使用一个流来影响另一个流的处理方式,或者丰富另一个流。例如,一个电子商务网站可能有一个订单事件流和一个发货事件流,他们希望为下订单 24 小时后尚未发货的订单创建一个事件流。这两个流可以由 orderId 键控,并连接在一起。当订单到达时,它被记录为键控状态,并创建一个计时器以在 24 小时后触发。当一个装运事件到达时,状态和计时器被清除。如果计时器确实触发,则该状态用于将订单发送到未完成的订单服务。

有关这方面的更多信息以及代码示例,请参阅连接流处理函数以及这些教程附带的实验室。