Flink是否以有效的方式创建渠道?

问题描述 投票:0回答:1

我正在检查apache Flink代码,了解它如何创建连接客户端:https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/netty/PartitionRequestClientFactory.java#L55-L108

我想考虑一下2秒后超时的waitForChannel()方法:https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/io/network/netty/PartitionRequestClientFactory.java#L191

我不喜欢这个超时,我认为如果发生errorpartitionRequestClient到达时,notifyall()就足够了。

我对么?或者我们是否希望在等待2秒后不断尝试连接?

java multithreading apache-flink
1个回答
0
投票

我们实际上并没有在等待之后尝试(重新)连接,我们只是重新进入循环来检查条件,并且一旦执行任何connectLock.notifyAll()调用就会唤醒,也就在超时结束之前。

通常情况下,这使您有机会对永远不会有这样的通知的情况作出反应但是因为上面的xTrollxDudex我实际上没有看到任何可能导致循环的其他地方。

© www.soinside.com 2019 - 2024. All rights reserved.