Flink 窗口文档说:
拥有密钥流将允许多个任务并行执行窗口化计算,因为每个逻辑密钥流都可以独立于其余流进行处理。
此语句是否意味着每个窗口都由专用线程计算?如果我有 5000 万个唯一键创建 5000 万个窗口,是否会有 5000 万个线程在并行执行?
不,Flink 不会为每个不同的键生成一个新线程。
应用于键控流的窗口运算符可以并行运行。输入流在 key 属性上进行分区,以便具有相同键的所有记录都由窗口运算符的同一并行实例处理。因此,每个并行运算符实例负责处理整个键域的子集。