本文的Flink源码版本为: 1.15-SNAPSHOT,读者可自行从Github clone.
StreamPartitioner抽象类
@Internal
public abstract class StreamPartitioner<T>
implements ChannelSelector<SerializationDelegate<StreamRecord<T>>>, Serializable {
private static final long serialVersionUID = 1L;
// 持有output channel数量
protected int numberOfChannels;
@Override
public void setup(int numberOfChannels) {
this.numberOfChannels = numberOfChannels;
}
// 是否采用广播的形式
@Override
public boolean isBroadcast() {
return false;
}
// 拷贝方法
public abstract StreamPartitioner<T> copy();
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final StreamPartitione