Почему Debezium и outbox гораздо медленнее: таймер опроса/BatchSize
Вам не нужно писать диспетчер outbox и таблицу руками. Оно уже давно реализовано в сотнях библиотек.
Из этих тезисов складывается впечатление, что проблема в этой библиотеке. то есть зачем делать эту задержку в каждом сообщении если достаточно только для случая ошибок (0.001%)?
иными словами:
сохранили сущность+сообщение в БД
отправили сообщение в кафку или куда захотим
удалили сообщение из БД
Причём п2-3 делать надо в том же процессе, но в фоновом сервисе, чтобы не держать клиента.
Кроме того фоновый сервис должен переобрабатывать пропущенные сообщения по таймеру (0.001% х Таймер опроса х BatchSize).
Собственно вопрос больше не к статье, а к уважаемому сообществу:
Какие библиотеки лучше подходят для решения этой задачи?
Спасибо за интересную статью! Стоит еще добавить, что ГЛАВНОЕ преимущество кафки - это горизональное масштабирование IOPS на ЗАПИСЬ. (это про деньги, а не только про производительность) Впрочем, вопрос высоких нагрузок вы осветили. Вопросы архитектурных удобств кафки, как я считаю вторичны.
Я стараюсь объяснять младшим товарищам, что тестирование это не нагрузка, а помощник разработчика наподобие статического анализатора(в случае С# - компилятора) или аи-агента. Главное владеть удобными методами и инструментами. Эта статья как раз про один из них.
У вас в статье есть следующие тезисы:
Потери: И это не экзотика на 0.001% инцидентов.
Почему Debezium и outbox гораздо медленнее: таймер опроса/BatchSize
Вам не нужно писать диспетчер outbox и таблицу руками. Оно уже давно реализовано в сотнях библиотек.
Из этих тезисов складывается впечатление, что проблема в этой библиотеке. то есть зачем делать эту задержку в каждом сообщении если достаточно только для случая ошибок (0.001%)?
иными словами:
сохранили сущность+сообщение в БД
отправили сообщение в кафку или куда захотим
удалили сообщение из БД
Причём п2-3 делать надо в том же процессе, но в фоновом сервисе, чтобы не держать клиента.
Кроме того фоновый сервис должен переобрабатывать пропущенные сообщения по таймеру (0.001% х Таймер опроса х BatchSize).
Собственно вопрос больше не к статье, а к уважаемому сообществу:
Какие библиотеки лучше подходят для решения этой задачи?
Спасибо за интересную статью!
Стоит еще добавить, что ГЛАВНОЕ преимущество кафки - это горизональное масштабирование IOPS на ЗАПИСЬ. (это про деньги, а не только про производительность)
Впрочем, вопрос высоких нагрузок вы осветили.
Вопросы архитектурных удобств кафки, как я считаю вторичны.
Спасибо за комментарий. Проект TestContainers действительно достоин упоминания, однако ключевой момент этой статьи — Как упростить.
Совершенно верно.
Я стараюсь объяснять младшим товарищам, что тестирование это не нагрузка, а помощник разработчика наподобие статического анализатора(в случае С# - компилятора) или аи-агента. Главное владеть удобными методами и инструментами. Эта статья как раз про один из них.