背景:
需求:
各位彦祖有没好的方案或者工具可以处理这种情况。
1
Itoktsnhc 2021-11-18 15:13:07 +08:00 1
感觉是 Flink
|
2
Itoktsnhc 2021-11-18 15:17:17 +08:00
自己实现应该有一个窗口期,比如 5 分钟,从 Topic A 和 B 中取数据,每份数据没有匹配最多向后等待一个窗口期,超时后没有匹配到扔到错误处理流程。正确匹配的数据合并后进入成功的 Topic 作为下游处理队列
|
3
xx6412223 2021-11-18 15:23:31 +08:00
源端无法保障,你需要的是一个错误处理流程
|
4
masterclock 2021-11-18 16:47:59 +08:00
flink stateful functions 似乎可以比较好地解决
|
5
SbloodyS 2021-11-18 17:04:41 +08:00
Flink 搞定
|
6
SmiteChow 2021-11-18 17:34:54 +08:00
需要前置一个过滤器消费者,整合任务并生产新任务
消费者至少有两个逻辑 1. 批量拉两个 topic 的任务,然后整合 2. 标记整合失败的任务,如果次数或时间大于一定阈值内丢弃任务,其他则重新放回队列等待下次整合 |
7
SmiteChow 2021-11-18 17:40:53 +08:00
另外不要用 Flink 来做这个事,杀鸡焉用牛刀,Flink 是用来在流上做聚合运算的。
你要的不过是整合一个完整的参数给消费者消费。 |
8
MoYi123 2021-11-18 17:50:30 +08:00
加个 redis, 拿到数据的时候查不到就写入, 能查到就直接合并不就好了.
|
9
azkaban 2021-11-18 18:16:34 +08:00
标准的 flink 双流 join 场景
|
11
whats OP 大家似乎都觉得 flink 做比较合适
|