Фундаментальные отличия Django, FastAPI и aiohttp Django: монолитный фреймворк полного стека, работающий преимущественно синхронно FastAPI: современный асинхронный фреймворк на базе Starlette и Pydantic aiohttp:…
механизм надежной установки соединения в TCP три шага: SYN → SYN-ACK → ACK SYN: клиент начинает процедуру соединения SYN-ACK: сервер подтверждает запрос клиента и выделяет необходимые ресурсы ACK: клиент подтверждает,…
Надёжность доставки в Kafka обеспечивается за счёт репликации данных между узлами кластера Для этого применяется механизм ISR (in-sync replicas): запись подтверждают только реплики, которые синхронизированы с лидером…
Как в pytest запускать тест с разными параметрами? Тесты параметризуют с помощью декоратора @pytest.mark.parametrize Функции теста передают имена переменных и соответствующие списки значений Для каждого набора…
Планируете ли вы применять очереди для тестирования? подключение RabbitMQ для проведения энд-ту-энд тестов воспроизведение продакшн-сценариев с помощью асинхронного трафика контроль обработки сообщений,…
архитектурный паттерн для интеграции микросервисов сохранение изменений и событий в отдельной таблице (outbox) в рамках одной транзакции с бизнес-операцией асинхронная отправка событий из outbox в очередь или шину…
Pub/Sub в Redis — это что? способ обмена сообщениями на основе публикации и подписки издатели (publishers) размещают сообщения в определённых каналах подписчики (subscribers) получают сообщения из каналов, на которые…
Как устроен UI-поток с Looper и Handler и зачем нужен main.immediate? В Android UI-поток является главным потоком, в котором работает Looper Looper последовательно обрабатывает очередь сообщений (MessageQueue) С…
Какие есть альтернативы RabbitMQ среди брокеров сообщений Kafka: распределённый брокер с высокой пропускной способностью ActiveMQ: классический JMS-брокер с поддержкой транзакций Redis Streams: встраиваемое решение с…
Какие бывают типы Exchange и чем они отличаются? (Рынок обмена сообщениями / брокеры сообщений) Direct Exchange доставляет сообщения в очереди только при точном совпадении routing key
Транспорты между микросервисами: синхронный и асинхронный обмен Синхронные: клиент отправляет API-запрос и ожидает получения ответа REST: HTTP/JSON, простая интеграция и широкая совместимость gRPC: HTTP/2 и бинарный…