Основой HTTP/3 служит протокол QUIC QUIC работает поверх UDP, а не TCP UDP помогает добиться низкой задержки, поскольку для него не требуется устанавливать соединение Контроль потока и исправление ошибок QUIC…
Зачем нужен контекст в gRPC-запросах и что происходит после его отмены Контекст как инструмент управления жизненным циклом запроса в Go Передача дедлайнов, сигналов отмены и метаданных между клиентом и сервером…
Зачем нужны каналы (Channel) в корутинах? синхронизируют работу goroutine и обеспечивают обмен данными между ними позволяют безопасно передавать значения без блокировок и гонок выступают в роли конвейера или очереди…
Для чего нужны транзакции? база данных, целостность объединение нескольких операций в единое целое атомарность: либо выполняются все операции, либо ни одна изоляция: исключает конфликты между параллельными операциями…
Работа с HTTP в Go resp.Body представляет собой поток тела ответа Необходимо обязательно вызвать defer resp.Body.Close() В противном случае возникает утечка ресурсов, включая TCP-соединения TCP-соединения не…
Различия Kafka и RabbitMQ в гарантированной доставке сообщений Kafka представляет собой распределённый commit log, в котором сообщения хранятся постоянно Данные попадают в топики, разделённые на partitions, благодаря…
Как Redis выполняет INCR и за счёт чего операция остаётся атомарной? Команды в Redis обрабатываются однопоточным Event Loop INCR увеличивает значение заданного ключа на единицу Вся операция выполняется как одна…
Как StateFlow работает с несколькими подписчиками? Kotlin Flow для реактивного состояния StateFlow — горячий поток, который постоянно хранит последнее значение При подписке каждый подписчик сразу получает актуальное…
Как ThreadLocal передаёт параметры, связанные с конкретным потоком? хранит данные отдельно для каждого потока гарантирует, что каждый поток получает собственное независимое значение позволяет обращаться к данным…
Как volatile обеспечивает видимость изменений в многопоточной программе? многопоточность, память и оптимизации указывает, что переменная не должна кешироваться потоками не допускает инструкции reordering со стороны…
Почему асинхронность повышает число запросов, обрабатываемых одним потоком? Асинхронность — это модель выполнения, при которой операции могут идти без блокировки потока Пока I/O-операция не завершена, поток не…