@HydrogenOxyde

Как часто стоит открывать и закрывать соединение при записи в БД из Kafka?

Имеется сервис Kafka Consumer, который читает данные из топика в Кафке и затем записывает их в БД. В данный момент реализовано так, что при поступлении нового сообщения в топик, открывается соединение с БД, идёт запись, затем соединение закрывается.
Сообщения в топик Кафки приходят с непостоянной скоростью. Могут приходить раз в пару секунд, а могут раз в несколько минут (зависит от времени суток, дня недели и пр.).

И вопрос в том, что открывать новое соединение раз в пару секунд, наверное, не очень оптимально.

У меня, как мне кажется, есть три варианта:
  • Оставить как есть
  • Не закрывать соединение вообще
  • Проверять поступление сообщений каждые N минут и если сообщений не было, то закрывать соединение, а при получении нового сообщения открывать соединение

Какой из этих вариантов более правильный или может есть ли какие-то иные верные подходы?
  • Вопрос задан
  • 1569 просмотров
Пригласить эксперта
Ответы на вопрос 2
mayton2019
@mayton2019
Bigdata Engineer
В самом вопросе есть какой-то конфликт интересов. С одной стороны сессии БД надо экономить.
Тоесть нужно их закрывать. С другой стороны реакция на это сообщение в БД должна быть быстрой.

Мне кажется что без какого-то дополнительного SLA или штрафов со стороны бизнеса, этот вопрос
просто невозможно решить.

Я-бы еще этот вопрос рассмотрел в суточной нагрузке. Если например событие с кафки приходят
от кассовых аппаратов то их надо обработать обязательно в течение дня. Тоесть БД должна быть
открыта всегда. Ну а на ночь можно изменить режим работы косньюмеров и сделать их более
вялыми и дать возможность ночным джобам поработать в БД спокойно.
Ответ написан
Комментировать
Просто используй пул соединений к СУБД в своей программе. Тогда открытием и закрытием будет заниматься этот механизм.

Не закрывать соединение вообще
это нехороший вариант, по очевидным причинам.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы