Кажется, достаточно простой вопрос для знающих Есть кафка топик, в которую

внешняя команду пишет данные. Из этого топика читает batch spark джоба данные, трансформирует и кладет его в хранилище.
Иногда бывает так, что ребята на внешней стороне поошибке/невнимательности/плавающему багу пишут белеберду в message. Из-за этого, собственно, батч джоба благополучно падает. Но мы точно знаем, что offsets с x + n невалидные, т.е. мы их можем просто скипнуть без угрызения совести.

Текущий способ решения этой проблемы:
- Поскольку в kakfa-chechpoints offset проставляется значением из последней успешной батч джобой, то нужно взять код батчджобы и законментировать всю бизнес логику, тогда - все мессажди будут просто прочитаны из топика, без каких либо обработок. Джоба успешно завершится, и чекпоинт обновится - прописав последний оффсет из топика. Таким образом невалидные сообщения в топике будут скипнуты.
Проблемы текущего способа решения очевидны.

Как можно решить такую ситуацию более разумно, и по феншую?

P.S. Разумеется, кафка кластер менеджится отдельной командой, и быстро/пожеланию параметры кафки не поменять. Если надо менять - то нужно проходить кучи согласований и т.д.

2 ответов

13 просмотров

Кастомный десериализатор сообщений? Успех - обработали, нет - пропустили. Как я понял, ситуация с невалидными сообщениями может возникать снова и снова, поэтому, на мой взгляд, разумно это в процессинге и предусмотреть

Almaz-Murzabekov Автор вопроса
Nikita Ryanov
Кастомный десериализатор сообщений? Успех - обрабо...

Кстати, тоже к этой мысли подходил. Все невалидные/нераспаршенные месседжи класть в отдельную карантинную таблицу, потом мониторить что в этой таблице. Спасибо за идею!)

Похожие вопросы

Обсуждают сегодня

Всем привет. Подскажите, почему не меняется значение поля при переключении сайта?
Alexander Peterikov
11
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Добрый день! Кто-нибудь знает как подключить твиг в контроллеры плагина?
Николай Афанасенко
5
привет, а расскажите как бэкапите свой vault raft cluster CE? я немного почитал и понял, что нужно как-то выполнять vault operator raft snapshot save backup.snapshot подсовыва...
[DBST] Dmitry Knyazev
5
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
@dblackCat Привет. Это же твой плагин? https://octobercms.com/plugin/catdesign-productbundle
Alexey Yakimov
5
Всем привет! Напишите пожалуйста, кто мог бы оффлайн преподавать некоторые курсы по Odoo в Алматы в одном из ВУЗов? Мы сейчас вместе с Odoo запускаем университетскую программу...
Adil Dauletkhan
2
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
Карта сайта