У нас вы можете посмотреть бесплатно Context в Go: всё, что нужно знать разработчику или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
Сервис в Ozon упал из-за одной забытой строчки: context.WithTimeout. В этом видео разбираем контекст в Go через production инцидент, три аналогии и реальный код. Я работал в Ozon, и мой сервис принимал запросы на расчет доставки, обогащал данные из базы и передавал в сервис логистики. "Too many open files" — сервис перестал отвечать. CPU в норме, память в порядке, но новые запросы не принимаются. Все работало до тех пор, пока логистика не зависла. Я не поставил таймаут на исходящие соединения. Они повисли, каждое держало file descriptor. Через несколько минут достигли лимита 1024, и все упало. Фикс — одна строчка: context.WithTimeout. Таймкоды: 00:00 Как одна строчка уронила production в Ozon 00:49 Почему контекст — суперсила Go 02:19 Стартовые контексты: Background и TODO 03:32 WithTimeout: спасаем сервис от краша 08:37 Как проверить установлен ли таймаут в контексте? 10:03 WithCancel: как остановить всё одной командой 13:50 WithValue: данные путешествуют с контекстом 19:46 5 правил работы с контекстом (чтобы не облажаться) 21:31 Go 1.21: новая функция WithoutCancel 24:50 Go 1.21: новая функция AfterFunc 27:37 Итоги: что запомнить Мой курс по микросервисам: https://olezhek28.courses/microservices Телеграм-канал, где публикую дополнительные материалы: https://t.me/olezhek28go В курсе по микросервисам контекст используется везде: для graceful shutdown, при работе с PostgreSQL и Redis, в gRPC и HTTP-сервисах, для трассировки запросов через OpenTelemetry. Показываю на практике паттерн transaction manager, где транзакция живет в контексте и передается базе данных. Подписывайся на канал, чтобы не пропустить видео про горутины, gRPC и микросервисы. Если есть вопросы — пишите в комментариях или в телеграм. #go #golang #микросервисы #backend #programming