Как решить проблему с неверными контрольными точками __consumer_offsets и эпохой производителя на разделах __transaction_state - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть два вида записей журнала в server.log

Первый вид:

WARN Сброс первого грязного смещения __consumer_offsets-6 до начального смещения 918, так какcheckpointed смещение 903 недопустимо.(kafka.log.LogCleanerManager$)

Второй вид:

INFO [TransactionCoordinator id=3] Initialized transactionalId Source: AppService Kafka consumer -> Not empty string filter -> CDMEvent mapper -> (NonNull CDMEvent filter -> Map -> Sink: Kafka CDMEvent producer, Nullable CDMEvent filter -> Map -> Sink: Kafka Error producer)-bddeaa8b805c6e008c42fc621339b1b9-2 with producerId 78004 and producer epoch 23122 on partition __transaction_state-45 (kafka.coordinator.transaction.TransactionCoordinator)

Я обнаружил, что упоминание о том, что удаление файла контрольных точек может помочь:

https://medium.com/@anishekagarwal/kafka-log-cleaner-issues-80a05e253b8a

"То, что мы собрали, было:

остановка посредника

удаление файла контрольных точек очистителя журнала

( cleaner-offset-checkpoint )

запуск посредника

, которая решила проблему для нас. "

Безопасно ли это делать со всеми файлами контрольных точек (cleaner-offset-checkpoint, log-start-offset-checkpoint, recovery-point-offset-checkpoint, replication-offset-checkpoint) или вообще не рекомендуется ни с одним из них?

1 Ответ

0 голосов
/ 07 марта 2019

Я остановил каждого брокера и переместил контрольную точку смещения чище в место резервного копирования и запустил его без этого файла, брокеры аккуратно запустили, удалили много лишних сегментов, и они не регистрируют:

WARN Сброс первого грязного смещения __consumer_offsets для регистрации начального смещения, поскольку смещение контрольной точки недопустимо

больше, очевидно, эта проблема / дефект https://issues.apache.org/jira/browse/KAFKA-6266еще не решена, даже в 2.0.2. Однако это не сжимало потребительское смещение в соответствии с ожиданиями, а именно: offsets.retention.minutes по умолчанию - 10080 (7 дней), и я попытался явно установить его на 5040, но это не помогло, но все же естьсообщения более одного месяца, так как log.cleaner.enable по умолчанию имеет значение true, они должны быть сжаты, но это не так, единственная возможная попытка состоит в том, чтобы снова установить cleanup.policy для удаления для темы __consumer_offsets, но этодействие, которое вызвало проблему, поэтому я немного неохотно это делаю.Проблема, которую я описал здесь Никакая группа потребителей Kafka, перечисленная kafka-consumer-groups.sh , также не решается этим, очевидно, что-то мешает kafka-consumer-groups.sh прочитать тему __consumer_offsets (когда он запускается с параметром --bootstrap-server, в противном случае он читает его из zookeeper) и отображает результаты, это то, что Kafka Tool делает без проблем, и я считаю, что эти две проблемы связаны.И причина, по которой я считаю, что тема не уплотнена, заключается в том, что в ней есть сообщения с точно таким же ключом (и даже временной меткой), более старые, чем должны, согласно настройкам брокера.Kafka Tool также игнорирует определенные записи и не интерпретирует их как группы потребителей на этом экране.Почему kafka-consumer-groups.sh игнорирует все, что, вероятно, связано с некоторым повреждением этих записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...