Kafka — распределённый брокер потоковых событий Идемпотентность предотвращает появление дубликатов при повторной отправке На стороне продюсера включают идемпотентный режим (enable.idempotence=true) Для сообщений в…
многопоточность, защита данных выбирать lock-free структуры данных, например ConcurrentHashMap заменять блокировки на атомарные операции (atomic variables), где это возможно сводить критические секции к минимально…
архитектурный подход к созданию распределённых систем приложение разделяется на самостоятельные сервисы каждый из них выполняет определённую бизнес-задачу сервисы обмениваются данными через строго определённые API…
Оптимизация SQL-запроса для постов пользователей с >500 подписчиками контекст: оптимизация запросов с использованием join и фильтрацией NULL создать индексы для колонок, участвующих в фильтрации и соединении, например…
HTTP/REST: синхронный и простой способ с широкой поддержкой gRPC: высокопроизводительный бинарный протокол для быстрых вызовов Message Broker (RabbitMQ, Kafka): асинхронный обмен через очереди, повышающий устойчивость…
механизм конкурентного ожидания в системах с несколькими каналами ожидает событие сразу на одном или нескольких каналах приостанавливает выполнение, пока хотя бы один канал не будет готов поддерживает чтение, запись и…
паттерн интеграции, обеспечивающий гарантированную доставку сообщений сохраняет события в специальной таблице (outbox) одновременно с изменениями в БД в рамках одной транзакции устраняет риск рассинхронизации данных и…
область: архитектура сетей и протоколы маршрутизация — выбор наиболее подходящего пути для IP-пакета для этого применяется таблица маршрутов, где указаны сеть, маска, шлюз и интерфейс маршрутизатор анализирует адрес…
Как в Go создать worker pool для обработки задач? параллельно выполнять функции с помощью goroutines ограничивать количество активных воркеров через канал-буфер или семафор передавать задания рабочим горутинам через…
структура данных для хранения пар ключ → значение внутри представляет собой хеш-таблицу ключ обязан быть comparable (поддерживать операцию ==) поиск, добавление и удаление выполняются в среднем за ~O(1) для обработки…
Какие есть альтернативы RabbitMQ среди брокеров сообщений Kafka: распределённый брокер с высокой пропускной способностью ActiveMQ: классический JMS-брокер с поддержкой транзакций Redis Streams: встраиваемое решение с…