TGViewer
Data Apps Design Data Apps Design @data_apps · 2.08K subscribers
Post #367 1.36K
👨‍💻 Сказ о том как я realtime replication чинил (Kafka + Debezium + Clickhouse)

Считайте, что это Incident Postmortem


🔴 Итак, input: Данные в таблице заказов застряли на вчерашней дате, свежих заказов в базе нет.


🔴 Шаги по решению проблемы:

— Проверяем таблицы в Clickhouse, действительно последняя дата - вчера

— Делаем сверку с таблицей источника данных - последний заказ несколько минут назад

Вывод: что-то не так с репликацией данных

— Смотрим в Kafka на topic offsets

start:3752136
end:3884660
offset:3869357
lag:15303


О нет, накоплено отставание в 15К записей, и оно продолжает расти! В чем дело?

Либо не хватает мощности (bottleneck) для записи в Clickhouse. Либо что-то с самим подключением (коннектором).

— Подключаемся на VM на которой развернут Debezium connector и смотрим лог

В логах сервиса (контейнер) вроде ничего подозрительного, при просмотре последних сообщений ошибок нет.

— Смотрим статус коннектора

curl http://localhost:8083/connectors/clickhouse-jdbc-sink/status | jq


Видим огромное, сложно воспринимаемое сообщение о статусе, в котором взглядом выцепляю failed: Connection refused

— Делаем restart коннектора (вместе с tasks!)

curl -X POST http://localhost:8083/connectors/clickhouse-jdbc-sink/restart?includeTasks=true | jq


Есть! Через несколько секунд проблема решена.

Коннектор работает, отставание (оффсет) обнулилось, данные в Clickhouse появились.


🔴 Выводы:

1. Всегда что-то может пойти не так, и заранее неизвестно что, где и когда.
2. Поэтому необходимы инструменты мониторинга:

— Общая нагрузка на систему CPU / Memory / Disk (identify bottlenecks)
— Потребление ресурсов в разрезе сервисов (Debezium connectors, Kafka, Clickhouse)
— Healthchecks - периодические проверки статуса и работоспособности сервисов
— Своевременные уведомления о возникающих проблемах (errors, connection lost, etc.)

Продолжаю работу.

💬 Сталкивались с ситуациями, когда мониторинг выручал? Какие инструменты могли бы советовать?


🌐 @data_apps | Навигация по каналу
  • ❤ 13
  • 👍 4
  • 🔥 2
More from @data_apps
  1. Aug 25, 2026🔸 Меня заблокировал Cursor Сообщение: Your Cursor account was closed following an account…
  2. Feb 27, 2026✅ 3 ОФФЕРА, мои мысли и рекомендации по поиску работы в 2026 в Data и IT в целом Салют! Чу…
  3. Feb 6, 2026Эксперимент успешный 😌 Чек-лист: https://gist.github.com/kzzzr/e49b7e0b2af01e4e1dbc57102d…
  4. Feb 6, 2026👀 DataLens: Бесплатная сказка закончилась. Кейс миграции на Superset (Open Source BI) 1 м…
  5. Feb 2, 2026😘 Открываю доступ к закрытым записям цикла Designing Modern Data Apps Всем привет! 🟡 Это…
  6. Jan 22, 2026☄ Открыт к предложениям: Staff Data Engineer / Data Platform Lead За 11+ лет я прошел путь…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →