Как написать SQL-запрос для выбора профилей с >10 постами? область: SQL, агрегирование и группировка для подсчета постов применяется агрегатная функция COUNT() GROUP BY используется по профилю (user_id/profile_id)…
Как организовать CI/CD для backend-приложения? CI/CD автоматизирует сборку, тестирование и деплой CI: каждый коммит запускает сборку и юнит-тесты Для создания pipeline можно использовать Jenkins, GitLab CI или GitHub…
Как настроить Celery для выполнения задач по расписанию? Celery — асинхронный менеджер задач для Python За планирование отвечает Celery Beat — компонент, который запускает задачи по расписанию Расписание Beat может…
Как сохранить в Kafka только последнее событие пользователя? использовать ключи сообщений (key) — в качестве ключа передавать идентификатор пользователя включить для топика compaction — Kafka сохранит только последнее…
Как настроить воркеры очередей: Supervisor или PHP-FPM? очередь — выполнение фоновых задач на PHP Supervisor — менеджер процессов для управления воркерами отвечает за запуск, перезапуск и автоматизация работы воркеров…
Аннотационная конфигурация Spring Аннотации в Spring позволяют упростить настройку приложения и отказаться от XML Основная аннотация для классов конфигурации — @Configuration @Bean применяется для ручной регистрации…
логирование с помощью фреймворков: Log4j2, SLF4J, Logback настройка уровней: ERROR, WARN, INFO, DEBUG вывод данных в файлы, консоль, удалённые сервисы (например, ELK, Splunk) структурирование сообщений:…
Exactly-once обработка в Kafka: как реализовать и что учесть Тема: обработка сообщений, Kafka, идемпотентность В основе exactly-once находится транзакционная запись в Kafka через Transaction API Применяется…
Как обеспечить гарантированную доставку сообщений между микросервисами с помощью паттернов Outbox и Saga? гарантия доставки устраняет риски при асинхронном взаимодействии и сбоях Outbox: сообщение записывается вместе…
RabbitMQ — брокер сообщений, поддерживающий подтверждения (ACK) Настроить у потребителя ручные подтверждения (manual ACK) Если потребитель завершился до отправки ACK, сообщение сохраняется в очереди и передается…
Kafka — распределённый брокер потоковых событий Идемпотентность предотвращает появление дубликатов при повторной отправке На стороне продюсера включают идемпотентный режим (enable.idempotence=true) Для сообщений в…
Контекст: обработка сообщений в очередях RabbitMQ с требованием гарантировать однократное выполнение операции Идемпотентность означает, что повторная обработка одного сообщения не меняет итоговый результат Применение…