http://wuchong.me/blog/2016/04/26/flink-internals-how-to-handle-backpressure/
https://ci.apache.org/projects/flink/flink-docs-master/internals/back_pressure_monitoring.html
反压之所以会是需要的,因为当源端流量过大,而消费端无法及时消费时,可能会导致job crash;比如内存耗尽等;
其实通过合理控制资源的使用,JStorm也可以做到自然反压的
spout pending队列是可以配置的,只有当record被ack,才会发送新的record,也可以达到流控的目的
Flink没有实现特别的反压逻辑,是因为对于flink而言,每层的buffer是可控的,是一个固定大小的bufferpool,当buffer用完时,发送端自然会停止发送,达到限流的目的,从而防止资源耗尽