0

J'ai besoin de traiter les identifiants de produits dans l'ordre et je prévois d'utiliser kafka pour cela, maintenant en cas de perte de données de kafka ou de mon code j'ai tous ces identifiants de produits dans peut-être la base de données si l'enregistrement n'est pas traité dans un temps donné disons 24 heures je dois les republier dans une file mais de manière prioritaire car kafka n'a pas de priorité pour les données en file d'attente je peux avoir une autre file d'attente prioritaire .commande de données dans Kafka pour la file d'attente primaire et prioritaire

Problème auquel je fais face, j'ai également besoin de commander des produits dans la file d'attente prioritaire. Donc, si j'ai distribué dans des partitions basées sur le hachage et mes consommateurs traitent à nouveau les messages dans l'ordre, en maintenant la file d'attente pour chaque thread dans le consommateur et basé sur le hash de product-id. Mais dans le cas de 2 files d'attente, 1 en tant que file d'attente primaire et 1 priorité I parmi ces files d'attente. Donc, les données des deux files d'attente devraient aller au même consommateur afin que je puisse maintenir la commande dans mon code.

Veuillez me suggérer si je suis sur la mauvaise voie ou comment procéder.

Répondre

0

Cela peut être fait si vous en avez besoin. Vous ne perdrez pas de données dans Kafka si vous avez une politique de rétention raisonnable et un facteur de réplication.


encore comment le faire:

1.Config:

Vous pouvez avoir deux sujets. Appelons-les normaux et prioritaires. Vous avez la même quantité de partitions sur les deux, laissez-nous 4. Vous avez la même stratégie de partitionnement sur les deux, laissez dire mod id produit 4.

2.Producer:

Maintenant, vous avez l'événement avec votre produit de l'ID 3. Il est envoyé à la partition de sujet normale 3. Vous ne le recevez pas pour une raison quelconque. Vous republiez l'événement sur le même produit sur le sujet prioritaire en utilisant la même logique pour qu'il se retrouve sur la même partition.

3.Consumer:

Du côté consommateur, vous devez attribuer manuellement les partitions spécifiques. Disons que vous avez deux consommateurs. Vous affectez juste la première partition 0 et 1 pour les deux sujets (et écoutez les deux sujets). Le second est affecté les deux partitions restantes 2 et 3.

J'espère que cela répond à votre question. Bonne chance!