1、前言
最近刚开始用Flink做流计算,踩了个坑,根据以往做实时流计算的经验,捋了一下Flink与Storm、Spark Streaming 的区别之后最终成功定位到问题并解决了。先不说坑在哪里,先说bug的表现:
- 数据处理出结果的时间与数据自带的EventTime相差了十几秒;
- 数据进入时候的延时为0~1秒;
- 数据处理时间据log打印为50~200毫秒;
- 数据入库花费时间约为300~700毫秒;
- 设置了窗口间隔为1秒;
- 设置了水印为流过数据的EventTime中最大的时间,允许乱序时间为1秒;
是不是很奇怪?明明数据延时加上数据处理和入库的时间,也不过2~3秒,为什么最终结果数据却和数据本身的EventTime相差10多秒?