TPL数据流,MaxDegreeOfParallelism vs负载均衡

时间:2015-06-01 13:07:57

标签: task-parallel-library tpl-dataflow

通过TPL数据流,可以为块并行运行MaxDegreeOfParallelism,另一种方法是通过限制每个目标块的BoundedCapacity,将源连接到多个目标来“加载平衡”负载。

问题,两种方法有什么区别,如果我可以设置MaxDegreeOfParallelism,为什么我甚至会烦恼负载平衡?

1 个答案:

答案 0 :(得分:0)

MaxDegreeOfParallelism强制执行任务的多少个实例可以在任务调度程序级别同时运行,这绝对是您想要的,因为您可以根据数据流网络的调用轻松设置它。 '负载均衡'正如你所说的,在这种情况下它并不是一个真实的概念。

链接到多个目标需要广播块(您不想发布到所有目标块)或谓词来决定流量。这将变得混乱和非常有状态,因为您必须跟踪哪个块具有下一条消息。 TPL更符合Actor模型,其中消息是状态,因此尝试引入这种动态链接状态并不真正与模型保持一致。