Kafka - Producers
Alasta 26 Janvier 2025 kafka kafka opensource
Description : Description des producers dans Kafka.
Kafka Producers
- Les Producers écrivent les données dans les topics (qui sont fait de partitions)
- Les Producers connaissent sur quelle partition écrire et le broker qui l’héberge
- Dans le cas de la perte d’un broker, les Producers vont automatiquement s’adapter
- C’est le Producers qui décide sur quel partition écrire la donnée
Producers: Message Key
- Les Producers peuvent choisir la clés à envoyer avec le message (string, number, binary, …)
- Si key=null, la donnée est envoyée en round robin
- Si key!=null, alors tous les messages pour un clés iront toujours dans la même partition (hash)
- Une clés est envoyée si l’on souhaite ordonnée pour un champ spécifique (traking GPS d’un objet)
Anatomie d’un message
Sérialisation des messages
- Kafka accepte seulement les Bytes en Input (producers) et Output (consumers)
- La sérialisation de message consiste à transformer les objets/données en Bytes
- C’est utilisé au niveau de value et key
- Les principaux serializer
- Sting (incl. JSON)
- Int, Float
- Avro
- Protobuf
Hash du Message Key
-
Un partitionneur Kafka est un code logique qui prend le record et qui détermine vers quelle partition l’envoyer
- La Key Hashing est le procédé pour déterminer le mapping entre la clés et la partition
- Dans le partitionneur Kafka par défaut, les clés sont hashées en utilisant l’algorithme murmur2, avec la formule suivante:
targetPartition = Math.abs(Utils.murmur2(keyBytes)) % (numPartitions - 1)