Кафка сообщение не расходуется - PullRequest
0 голосов
/ 05 июля 2019

У меня работает один узел Kafka (v 0.10.2). Мы настроили log.retention.hours = 480, но сообщения не доступны потребителям до истечения срока их действия (сообщение Ex отправляется на 1-й день). Июль, и я запустил своего потребителя 4 июля. Перед тем, как запустить потребителя, я проверил сообщения через службу мониторинга Yahoo! но при запуске потребителя он продолжает опрашивать и ждать сообщений). Ниже упоминается конфигурация брокера:

broker.id=1
delete.topic.enable=true
num.network.threads=5
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=xxx
num.partitions=1
num.recovery.threads.per.data.dir=5
log.retention.hours=480
offsets.retention.minutes=43200
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=x.x.x.x:2181
zookeeper.connection.timeout.ms=30000
zookeeper.session.timeout.ms=30000

Я гуглил, но не смог найти причину. Пожалуйста, дайте мне знать, почему это происходит и как это исправить.

1 Ответ

0 голосов
/ 05 июля 2019

Есть несколько причин, по которым сообщение не используется. Вот несколько способов отладки:

Один из них, как сказано, вы, возможно, потребляете из последнего смещения, и, следовательно, вы будете ждать. В этом случае попробуйте создать сообщения в теме и проверьте, не были ли они использованы.

Далее убедитесь, что ваш потребитель подписывается на разделы, для которых создаются сообщения. Если вы используете Streams API, вам не нужно беспокоиться об этом, поскольку вы подпишетесь на все разделы.

Возможна проблема с конфигурацией потребителя. Попробуйте использовать kafka-console-consumer с флагом --from-beginning. Если нет выходных данных, это означает, что сообщения, вероятно, отсутствуют, или у вас есть некоторые трудности с подключением к нему. Вы можете повторить этот тест как на машине Kafka, так и снаружи.

Проверьте подключение вашего клиентского клиента к вашему брокеру, который является лидером тематических разделов, из которых вы потребляете. Если при подключении возникла проблема, вы должны получить исключение (например, тайм-аут для получения данных). Для этого вы можете использовать telnet broker_ip:port

Иногда может случиться, что ваш загрузочный сервер может быть доступен, но не другие посредники, к которым ведут ваши тематические разделы.

Проверьте свои правила iptables, чтобы увидеть, заблокирован ли порт брокера или нет. Увидеть Что произойдет, если лидер не умер, но не сможет получать сообщения в Кафке? SPOF

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