Как прочитать всю тему Кафки, от начала до конца, не меняя group.id и не зная о разделе темы - PullRequest
0 голосов
/ 16 октября 2018

Я читаю из темы Кафки и фиксирую смещения чтения.

Могу ли я каким-то образом, используя тот же group.id и без поиска в определенном разделе, как , предложенный здесь , перечитать всю тему от начала до конца?

используя Kafka 1.1 мой псевдокод:

var config = new Dictionary<string, object>
{
 { "group.id", "NCC1"},
 ...
 { "enable.auto.commit", "false"},
 { "default.topic.config", new Dictionary<string, object>
 {
  { "auto.offset.reset", "earliest" } 
 }
 }
};      

using (var consumer = new Consumer<string, string>(config, new StringDeserializer(Encoding.UTF8), new StringDeserializer(Encoding.UTF8)))
{
  consumer.Subscribe(new string[] { topic });
  consumer.OnMessage += (_, msg) =>
  {
    // DO SOMETHING
    onsumer.CommitAsync(msg);
  };

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Вы можете использовать kafka-consumer-group для сброса смещений для существующих идентификаторов групп.

kafka-consumer-groups --bootstrap-server <kafkahost:port> --group <group_id> --topic <topic_name> 
--reset-offsets --to-earliest --execute

Это сбросит смещение для данной темы и group.id до самого раннего.

Вы можете увидеть больше вариантов там:

https://cwiki.apache.org/confluence/display/KAFKA/KIP-122%3A+Add+Reset+Consumer+Group+Offsets+tooling

0 голосов
/ 16 октября 2018

Kafka позволяет сбросить смещение для определенной темы и идентификатора группы.Эта возможность воспроизведения на самом деле является одним из пунктов продажи Kafka.

Вы можете сделать это с помощью инструмента командной строки kafka-streams-application-reset, как указано здесь .

Альтернативный способдолжен использовать kafka-consumer-groups инструмент командной строки, как описано в этом блоге .Альтернативный способ может быть интересен, если вы используете Windows, поскольку эквивалентный пакетный файл для kafka-streams-application-reset.sh не предоставлен.

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

РЕДАКТИРОВАТЬ

Я думаю, что ваш вопрос очень похож на этот

...