0

Kafka garantit que les messages avec la même clé iront toujours à la même partition . Par exemple, j'ai un message avec la clé de chaîne: 2329. Et deux sujets t1 et t2. Lorsque j'effectue l'écriture de ce message, il va dans la partition 1 dans les deux sujets, comme prévu.Kafka Streams stratégie de partitionnement de sujet de sauvegarde de magasin d'état

Maintenant le problème lui-même: J'utilise Kafka Streams 0.10.2.0 stockage d'état persistant, qui crée automatiquement un sujet de sauvegarde. Maintenant, dans le cas de ce message de sauvegarde avec la clé: 2329 va dans une autre partition (partition 0), ce qui est étrange pour moi.

Est-ce que quelqu'un a rencontré ce problème?

+0

Utilisez-vous le même sérialiseur? Le numéro de partition est déterminé par la valeur sérialisée de la clé. Si le Kafka Streams Serde utilise un sérialiseur différent de celui du Serializer utilisé par votre KafkaProducer, cela pourrait l'expliquer. –

+0

Les sérialiseurs sont les mêmes, le partitionneur est par défaut. – user3735823

Répondre

0

J'ai trouvé où était le problème.

Pour améliorer les performances, j'ai ignoré le repartitionnement avant d'écrire des données dans le magasin d'état. Et utilisé une autre colonne de la valeur que la clé de magasin d'état. Et cela a fonctionné jusqu'à ce que le sujet supplémentaire avec l'information d'enrichissement ait été ajouté. J'ai donc juste oublié d'effectuer le repartitionnement.