Github user tzulitai commented on a diff in the pull request:
https://github.com/apache/flink/pull/5108#discussion_r154299536
--- Diff:
flink-connectors/flink-connector-kafka-base/src/main/java/org/apache/flink/streaming/connectors/kafka/partitioner/FlinkFixedPartitioner.java
---
@@ -68,6 +78,13 @@ public int partition(T record, byte[] key, byte[] value,
String targetTopic, int
partitions != null && partitions.length > 0,
"Partitions of the target topic is empty.");
- return partitions[parallelInstanceId % partitions.length];
+ if (topicToFixedPartition.containsKey(targetTopic)) {
--- End diff --
On second thought, passing in the runtime context wouldnât work. To let
user custom partitioners be stateful, weâll essentially need to make
FlinkKafkaPartitioner a CheckpointedFunction, and let the
FlinkKafkaProducerBase invoke the checkpoint methods.
We should be able to avoid breaking the user API by having empty base
implementations for the checkpoint methods on the FlinkKafkaPartitioner.
---