Apache Kafka представляет собой распределённую платформу для обмена сообщениями и асинхронного взаимодействия сервисов Производитель (producer) публикует сообщения в тематические очереди, которые называются топиками…
Как сохранить в Kafka только последнее событие пользователя? использовать ключи сообщений (key) — в качестве ключа передавать идентификатор пользователя включить для топика compaction — Kafka сохранит только последнее…
Exactly-once обработка в Kafka: как реализовать и что учесть Тема: обработка сообщений, Kafka, идемпотентность В основе exactly-once находится транзакционная запись в Kafka через Transaction API Применяется…
RabbitMQ — брокер сообщений, поддерживающий подтверждения (ACK) Настроить у потребителя ручные подтверждения (manual ACK) Если потребитель завершился до отправки ACK, сообщение сохраняется в очереди и передается…
Kafka — распределённый брокер потоковых событий Идемпотентность предотвращает появление дубликатов при повторной отправке На стороне продюсера включают идемпотентный режим (enable.idempotence=true) Для сообщений в…
многопоточность, защита данных выбирать lock-free структуры данных, например ConcurrentHashMap заменять блокировки на атомарные операции (atomic variables), где это возможно сводить критические секции к минимально…
архитектурный подход к созданию распределённых систем приложение разделяется на самостоятельные сервисы каждый из них выполняет определённую бизнес-задачу сервисы обмениваются данными через строго определённые API…
Оптимизация SQL-запроса для постов пользователей с >500 подписчиками контекст: оптимизация запросов с использованием join и фильтрацией NULL создать индексы для колонок, участвующих в фильтрации и соединении, например…
HTTP/REST: синхронный и простой способ с широкой поддержкой gRPC: высокопроизводительный бинарный протокол для быстрых вызовов Message Broker (RabbitMQ, Kafka): асинхронный обмен через очереди, повышающий устойчивость…
механизм конкурентного ожидания в системах с несколькими каналами ожидает событие сразу на одном или нескольких каналах приостанавливает выполнение, пока хотя бы один канал не будет готов поддерживает чтение, запись и…
паттерн интеграции, обеспечивающий гарантированную доставку сообщений сохраняет события в специальной таблице (outbox) одновременно с изменениями в БД в рамках одной транзакции устраняет риск рассинхронизации данных и…