in kafka-connector/src/main/java/com/google/pubsub/kafka/source/CloudPubSubSourceTask.java [327:341]
private Integer selectPartition(Object key, Object value, String orderingKey) {
if (kafkaPartitionScheme.equals(PartitionScheme.HASH_KEY)) {
return key == null ? 0 : Math.abs(key.hashCode()) % kafkaPartitions;
} else if (kafkaPartitionScheme.equals(PartitionScheme.HASH_VALUE)) {
return Math.abs(value.hashCode()) % kafkaPartitions;
} else if (kafkaPartitionScheme.equals(PartitionScheme.KAFKA_PARTITIONER)) {
return null;
} else if (kafkaPartitionScheme.equals(PartitionScheme.ORDERING_KEY) && orderingKey != null &&
!orderingKey.isEmpty()) {
return Math.abs(orderingKey.hashCode()) % kafkaPartitions;
} else {
currentRoundRobinPartition = ++currentRoundRobinPartition % kafkaPartitions;
return currentRoundRobinPartition;
}
}