1.概述
上个文章已经说了泛化去重部分是想用flink去实现,然后实现的时候发现,如果使用flink的数据聚合和stream sql去实现很蠢,因为如果使用时间窗口进行批处理,在当前我的需求的情况下,完全不符合,用大炮打蚊子的感觉。
后来想到的通过提取请求包中的关键字进行hash,然后以hash,原数据的方式存在redis,通过redis进行去重处理。(后来看ysrc的被动扫描,发现这是人家三年前就想到的的思路……)
那么flink部分就只需要用flatmap对数据进行泛化处理,然后插入redis即可。(其实这里拿python 整个kafka的消费者就行,没必要用flink,但是我想明白的时候已经快写完了。)
还剩最后大头的扫描器了,想抄别人的看着都费劲,我要裂开了。
2.main
本质上就是一个kafka的消费者,拿到数据流进flatmap处理。
1
2
3
4
5
6
7
8
9
10
11
12
13public static void main(String[] args) throws Exception {
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.enableCheckpointing(1000);
Properties properties = new Properties();