А такой вопрос - реальна ли ситуация, что консюмер начнет

читать с earliest на грани с ttl сообщений, и перед вторым poll сработает ретеншен, который заденет так же данные которые должны были считаны вторым poll, и консюмер потеряет какие то данные ?

7 ответов

13 просмотров

Конечно реальна.

Petr-O. Автор вопроса
Вячеслав
Конечно реальна.

и как с подобным живут, понимаю что кейс 1 на миллион, но как с этим жить)?

Petr O.
и как с подобным живут, понимаю что кейс 1 на милл...

А в чём проблема-то? Начни он читать на минуту позже - он бы их и так потерял.

Petr-O. Автор вопроса
Вячеслав
А в чём проблема-то? Начни он читать на минуту поз...

предположим, что мы сложили историю топика из с3 в таблицу, в ней ключ X имеет значение 10 (X = 10) потом запустили процесс который из кафки обновляет эту таблицу, он начинает читать с самого начала - тк первый раз к ней подключается, он прочитал из первого poll - что ключ X=1, применил, (мы надеемся на eventually consistency, что в конечном итоге мы согласуемся с источником) во втором poll содержится что X=10, но мы его не получили, В итоге X = 1 , и останется им - пока X кто нибудь не обновит еще раз Можно придумывать всякие if else и применять обновления только если offset больше записанного, но не факт что в с3 будет оффсет или что ваша пишущая коробка в виде синк коннектора поддерживает такую логику, ну и в целом это не оптимально

Petr O.
предположим, что мы сложили историю топика из с3 ...

И отсутствующая запись при этом допустима? Просто если мы говорим о согласованности с источником, то потери вообще недопустимы, соответственно работа на границе ретеншна - не вариант, либо ретеншен побольше нужен, либо ещё что-то. Я могу представить кейс, когда потеря записи допустима, а некорректная запись - нет, но это уже реально особый случай и проще его решать в рамках существующих ограничений (т.е. пойти в сторону более строгих гарантий, как в предыдущем случае).

Petr O.
предположим, что мы сложили историю топика из с3 ...

Выглядит как будто вам тогда нужен compacted топик или долгий ретеншн

Petr O.
предположим, что мы сложили историю топика из с3 ...

что мешает засетапить топик с бесконечным ретеншном, стартануть обработку, после прохода уже настроить нужный ретеншн уже с учетом рисков и скорости обработки?

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

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

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
3
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Карта сайта