сообщение не консьюмеры не вычитали сообщение в течении какого то времени?
нет, а что с сообщениями хотите делать? возможно поможет компакт топик ещё возможно получать оффсеты для консюмергруппы и считать лаг
Все сложней. Бывают ситуации когда сам консьюмер зависает
а-ля тригер на удаление? эту логику просто на консюмере надо реализовать, если сообщение не проходит по ттл - что-то с ним сделать
Все сложней. Бывают ситуации когда сам консьюмер зависает. И продюсер должен пометить, что данное сообщение, не обработано. В эту концепцию хорошо ложится рест, но думал, может есть и через Кафку такая возможность.
Через лаг, выгрузку сообщения и с двиг офсет, можно. Но по факту это костыль
у кафки может быть множество консюмеров, это не очередь, а еще есть повторные чтения
В рамках группы все равно вычитка происходит раз. В текущей ситуации один модуль будет работать с топиком. Поэтому важно, чтобы была обратная связь не смотря не на что.
можно сделать из консюмера продюсинг в отдельный топик и вычитка им тем, кто записал в первый сообщение)
Зависание консьюмера звучит как баг.
Опять же, не со всем понятно как определить что сообщение прочиталось, если будет другая группа. А если та же, то Кафка не даст ему вычитать партицию, если уже есть подключённый к ней консьюмер
Да, и мне нужно обработать такие ситуации)
Если нет сил найти баг, то можно убивать консюмер
Тут речь не в силах, а в обработки. У меня нет бага, у меня есть задача поработать интеграцию. Хотел при помощи Кафки, но задача выглядит провальной.
С точки зрения кафки продюсер ничего не знает о консюмерах, а консюмеры ничего о продюсерах. У всех консюмер-групп есть закоммиченные оффсеты в рамках чтения топик-партиций. Можно получать оффсеты для консюмер-группы, посмотреть какие консюмер-группы что прочитали. Если продюсер будет трекать для каждого отправленного сообщения его оффсет в рамках партиции, то через admin api можно будет получать актуальные оффсеты и сравнивать их, в том числе таймштампы и делать уже какую-то определенную логику. Но все равно это дурно пахнет
Согласен, тут проще grpc или классический rest
Обсуждают сегодня