Sur un de mes containers lxc j'ai des scripts de test simple de production et consommation de messages. Lors de la production, nous spécifions des informations de création :

producer = KafkaProducer(bootstrap_servers=['192.168.1.144:9092'],
                         value_serializer=lambda x:
                         dumps(x).encode('utf-8'))

data = {'number' : e}
producer.send('numtest', value=data, key=b'foo')

On voit ici que le topic est numtest et que nous assurons un suivit de partition avec la clef 'foo';$

Ici l'ouverture du message kafka n'a précisé que le topic "numtest" et la clef "foo". Nous obtenons donc un pool topic/partitions qui suit les directives du serveur :

~kafka/config/server.properties

# The default number of log partitions per topic. More partitions allow greater
num.partitions=3