Quelle est la différence entre un topic et une partition dans Kafka ?
Réponse
Un topic est le flux logique nommé dans lequel les producteurs publient des messages, l'équivalent d'une catégorie ou d'un canal. Un topic est physiquement découpé en une ou plusieurs partitions, chacune étant un journal ordonné et immuable auquel les messages sont ajoutés séquentiellement. Ce découpage en partitions est ce qui permet à Kafka de paralléliser la charge, en répartissant les partitions sur plusieurs brokers et en laissant plusieurs consommateurs traiter des partitions différentes en parallèle.
Piège classique
Le piège est de croire que Kafka garantit un ordre global des messages sur tout le topic : l'ordre n'est garanti qu'à l'intérieur d'une même partition, pas entre partitions différentes, ce qui a des conséquences directes sur le choix de la clé de partitionnement.