Size: a a a

2020 October 01

AM

Alexey Melchakov in pro.kafka
Да, вопрос как  пропустить такое сообщение.
источник

OG

Oleg Gavrilov in pro.kafka
А вдруг там важное?
источник

VB

Vadim Boldyrev in pro.kafka
Oleg Gavrilov
А вдруг там важное?
Ну это зависит от постановки задачи, и от данных))
источник

VB

Vadim Boldyrev in pro.kafka
Alexey Melchakov
Да, вопрос как  пропустить такое сообщение.
В начале стрима бранч, с byteserde, в фильтрах проверять успешность десериализации в авро, если не успех пускать в ветку сломанных сообщений. Такое не пойдет?
источник

OG

Oleg Gavrilov in pro.kafka
Просто если так евенты дропать по любому поводу, может вообще не принимать их?)
источник

OG

Oleg Gavrilov in pro.kafka
У них форматов много
источник

OG

Oleg Gavrilov in pro.kafka
А так звучит полезно
источник

AM

Alexey Melchakov in pro.kafka
Oleg Gavrilov
Просто если так евенты дропать по любому поводу, может вообще не принимать их?)
Это другой вопрос. Терять или нет это бизнес логика. Как технически их пропускать
источник

AM

Alexey Melchakov in pro.kafka
Vadim Boldyrev
В начале стрима бранч, с byteserde, в фильтрах проверять успешность десериализации в авро, если не успех пускать в ветку сломанных сообщений. Такое не пойдет?
Да это один из вариантов
источник

SP

Sergey Pichkurov in pro.kafka
странно, это выглядит как бага. по идее, такое должно в ProductionExceptionHander падать, если нет так - то это бага, IMO
источник

SP

Sergey Pichkurov in pro.kafka
Vadim Boldyrev
В начале стрима бранч, с byteserde, в фильтрах проверять успешность десериализации в авро, если не успех пускать в ветку сломанных сообщений. Такое не пойдет?
выглядит как костыль, с сообщениями что угодно может случиться по дороге, проверять во всех точках ?
источник

AM

Alexey Melchakov in pro.kafka
ProductionExceptionHander - попробую еще покопать, может конфигурацию  Producer  надо по-другому задавать. Либо и правда может дефект
источник

VB

Vadim Boldyrev in pro.kafka
Sergey Pichkurov
выглядит как костыль, с сообщениями что угодно может случиться по дороге, проверять во всех точках ?
Ну дорога принадлежит самому приложению. Оно ответственено за валидный код) ну то есть тестирование или откат при установке.

Ну и да, это все костыль.
источник

AM

Alexey Melchakov in pro.kafka
Видел где то ответ на SO от Matthias J. Sax что кафка тримы при обработке не должны бросать исключения в методах by design. Это уже учли. Но вот кейс с сериализацией во внутренний стейтстор пока без ответа. Единственный путь пока остается это исследовать ProductionExceptionHandle logandcontionue, но еще бы хотелось понимать к каким это может последствиям приветси
источник

SB

S B in pro.kafka
Alexey Melchakov
да, причина ошибки ясна. конкретно это попытка сеарелизовать BigDecimal co scale=0 в авро тип, который требует scale=2.

Понятно, что это нужно чинить и ловить на тестах.

Но  вопрос в том, как защитить себя от такой ошибки на проде, при которой из-за одного битого сообщения возможна ситуация, когда приложение полностью блокируется и нет возмжности  продолжить его работу из-за того что оно не может пропустить такое сообщение.
А что мешает взять cli и руками передвинуть офсет?
источник

AM

Alexey Melchakov in pro.kafka
S B
А что мешает взять cli и руками передвинуть офсет?
Это запасной экстренный вариант, и не очень бы хотелось такое на продакшне  исполнять
источник

SB

S B in pro.kafka
Alexey Melchakov
Это запасной экстренный вариант, и не очень бы хотелось такое на продакшне  исполнять
Это весьма просто и позволит тебе поднять прод очень быстро. А все остальное - тестируйте лучше :)
источник

AM

Alexey Melchakov in pro.kafka
Спасибо!
источник

SP

Sergey Pichkurov in pro.kafka
Vadim Boldyrev
Ну дорога принадлежит самому приложению. Оно ответственено за валидный код) ну то есть тестирование или откат при установке.

Ну и да, это все костыль.
не совсем так, приложению принадлежат колеса, который катяться по дороге. а дорога - это сами стримы, кафка то бишь.
источник

SP

Sergey Pichkurov in pro.kafka
тут все выглядит как проблема runtime reliability, прикладный код здесь не причем. на кафке и так все приходится делать руками (например DLQ), а это вообще выглядит как блокер. а какая версия стримов, кстати Cliff
источник