在跑Flink任务时,遇到了operator反压问题,任务执行图如下,source(读Kafka), KeyBy(抽取数据字段供keyBy操作使用),Parser(业务处理逻辑),Sink(写Kafka),除了KeyBy->Parser使用hash(KeyBy操作)链接,其他都使用RESCALE链接。(并发度仅供参考,这个是解决问题后的并发度,最初的并发度为 500->1000->3000->500)
为了解决反压问题做的处理:
1. 增大Parse并发,KeyByOpe.buffers.outPoolUsage 上升速率有减缓,多次加并发依然没有解决
2. 优化Parse逻辑,减少CPU使用,效果不明显
3. 将Parse里的一些数据过滤逻辑移到KeyBy operator里面,效果不明显
最后猜测可能是KeyBy operator并发大和Parse链接hash操作占用NetWork资源过多导致反压,于是减少KeBy operator的并发度,发现解决问题。但是想请教一下这个操作解决这个问题的具体原因。
谢谢!