Всем привет, в компании активно используются confluent кафка коннекторы из кафки в s3 (sink). В эксплуатации мы конкретно так замучились:
- странная модель рестартов, когда надо перезапускать через рест апи, соответственно мониторить гет запросами
- жрет много памяти
- какая-то ну просто супер непонятная модель настройки, документация треш. Развернуто оно в кубере хелм чартом, но банально разграничить чтобы один коннектор писал чз одни креды а другой через другие, не невозможно, но очень неудобно
- используется 3 внешних топика для хранения оффсетов не до конца понятно зачем, если есть протокол самой кафки. Одна консумер группа и 2 коннектора будут работать как 2 разных консумера
Хотя и круты они как минимум:
- группировкой в партиции по времени (+сжатие)
- ретраи, идемпотентность (вроде)
Что я хочу спросить:
- поделитесь пж опытом, мб мы просто как-то не так с этим работаем, не у нас одних же сложилось впечатление что это какой-то костыль с точки зрения реализации
- кто использует какие альтернативы
- мб есть какие-то советы, бест практис итп
Кafka Connect - под крышечкой содержит различные имплементации синков и драйверов.
В данном случае вы используете s3. Поэтому ответы на вопросы надо искать в s3.
У меня есть личное неприятное воспоминание по поводу s3. Кажется его API может потреблять
чуть больше памяти чем вы думаете. Посмотрите какого размера файлы вы пишете в синк.
И сколько висят у вас в пуле в ожидании записи. Возможно требуется тюнинг.
Вообще бизнес смотрит на проблемы памяти с безразличием. Цена памяти в наше время дешевая.
Дешевле купить более толстую виртуалку +32Гб чем оплачивать 1 месяц работы для синьор-девелопер
или девопс.
Если вам сильно-сильно интересно - сделайте дамп памяти и посмотрите. Java, в отличие от других
runtime хранит очень много сведений о куче. Сможете понять что за бизнес-объекты у вас сожрали все.