这种类型的分区有助于均匀地分配数据。它通过循环的方式对数据进行分发。当数据倾斜时,这种类型的分区很好。
private static final long serialVersionUID = 1L;
private final int[] returnArray = new int[]{-1};
public RebalancePartitioner() {
}
public int[] selectChannels(SerializationDelegate<StreamRecord<T>> record, int numberOfOutputChannels) {
int newChannel = ++this.returnArray[0];
if (newChannel >= numberOfOutputChannels) {
this.returnArray[0] = 0;
}
return this.returnArray;
}