#go #apache-kafka #kafka-consumer-api #sarama
#Вперед #apache-kafka #kafka-consumer-api #sarama
Вопрос:
Я читал, что kafka предоставляет клиентскую библиотеку для потребителей, которая позволяет восстанавливать, сохраняя последнее считанное смещение в zookeeper (не на 100% уверен в том, где оно хранится).
Возможно ли сделать то же самое с потребителями Sarama?
Допустим, я читаю до смещения 550, мой потребитель падает на 5 минут, сейчас у нас смещение 700, но я хочу возобновить потребление со смещения 550.
Возможно ли это без необходимости сохранять состояние самостоятельно? Я бы предположил, что это так, но я не понимаю, как.
Я нашел sarama.OffsetNewest/Oldest
, но это не то, что я ищу…
Ответ №1:
Потребители Kafka раньше сохраняли смещения в Zookeeper, но теперь они хранят их непосредственно в Kafka. Смотрите Раздел «Потребитель» в документах Kafka.
Sarama очень хорошо справляется с этим, и потребители Sarama будут фиксировать (сохранять) смещения в Kafka по умолчанию.
Взгляните на пример потребителя Sarama. Первоначально этот пример начинается в конце раздела, но при перезапуске он будет перезапущен с последней позиции.
Комментарии:
1. потрясающе, спасибо, что указали на часть документа, объясняющую это.