Des problèmes avec la période de rétention pour compenser sujet de kafka

Nous sommes face à un problème de Kafka. Nous avons un topic avec seulement une partition et un seul consommateur dans un groupe de consommateurs. Le consommateur a été arrêté pendant un mois. En attendant, les producteurs sont à l'envoi de messages à ce sujet.

Quand on commence le consommateur de nouveau, il n'est pas en mesure de consommer les messages. Je suppose que le commis auparavant offset a été perdu, de sorte que le consommateur n'a aucune idée de trouver le point de départ lors de la réveiller.

Lorsque nous arrêter et démarrer le nouveau consommateur, le consommateur peut alors reprendre les nouveaux messages, mais tous les message qui a été envoyé auparavant ne l'ai jamais consommé.

A permis de compenser été corrompu? La période de rétention pour la kafka internes sujet des compensations, dire que la dernière commis des compensations a été supprimé?

Double Possible de Comment un décalage d'expiration pour un Apache Kafka groupe de consommateurs?
salut @matthias-j-sax , en supposant que nous avons face à problème avec un décalage de gestion, quelle est la meilleure pratique pour maintenir offset, est-ce une bonne idée d'avoir décalage maintenu à l'extérieur de kafka cluster, comme SGBDR, donc en cas de perte de décalage, on peut relancer la consommation à partir de l'offset qui a stocké dans la bd?
Chose la plus simple est de changer de courtier en paramètre une augmentation de compenser le temps de rétention. Si vous le réglez à INT_MAX vous obtenez plusieurs années... cela devrait le faire. Si vous avez vraiment besoin de plus de temps de rétention, vous pouvez stocker le décalage n'importe où vous voulez comme un DB, trop. Mais c'est bien sûr, plus de code à maintenir dans votre propre base de code.
Je suis abit confus comme même, j'ai mis de l'offset.la rétention.minutes à 10 minutes, je m'attendais à des décalages de certains groupes seront supprimés car aucun groupe de consommateurs à l'heure actuelle, mais quand je surveiller les journaux il n'y a pas de décalage expiré [2017-03-02 06:57:24,907] INFO [Group Metadata Manager on Broker 1]: Removed 0 expired offsets in 1 milliseconds. (kafka.coordinator.GroupMetadataManager) @MatthiasJ.Sax
Pas sûr... combien de temps avez-vous attendu? la rétention.le temps est une garantie de la limite inférieure, et il n'y a pas de stricte application pour supprimer les décalages immédiatement -- il y a aussi un clenup intervalle que vous pouvez configurer.

OriginalL'auteur Joey Trang | 2017-03-02