TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
DevOps by REBRAIN

30 Sep, 17:36

Открыть в Telegram Поделиться Пожаловаться

Как собрать полноценный REST/gRPC сервис на Go?

Хендлер на Go, который отдаёт JSON, пишется за вечер. Проблемы начинаются, когда этот код уезжает в Kubernetes.

При деплое под получает SIGTERM и обрывает запросы на середине. Клиент уже закрыл соединение, а запрос к PostgreSQL продолжает работать и грузить базу. В логах тысячи строк, и по ним не понять, какие относятся к упавшему запросу. Тесты на моках зеленые, а с реальной базой сервис ломается. Образ собран плносью на golang и весит сотни мегабайт, из-за чего деплой идёт дольше.

Для каждой из этих проблем есть решение: Graceful Shutdown, context.Context на всех слоях, slog с Request ID, интеграционные тесты с настоящей базой и сборка на scratch. Под всем этим нужна архитектура, в которой одну бизнес-логику можно подключить и к REST, и к gRPC без копирования кода.

Всё это мы собрали в новом практикуме «Golang: полноценный REST/gRPC сервис на Go». В нём 14 уроков, уровень Middle. В каждом модуле есть задание, и сервис собирается из них по шагам.

Что в программе:

🟢Проектирование структуры Go-приложения по слоям Clean Architecture
🟢Реализация gRPC-серверов и Unary RPC методов на Go
🟢Создание RESTful эндпоинтов с использованием роутера go-chi
🟢Управление таймаутами и отменой запросов с помощью context.Context
🟢Написание интеграционных тестов с реальной БД через testcontainers-go

Итог - микросервис каталога продуктов с REST и gRPC, валидацией, Graceful Shutdown, тестами и образом на scratch.


🎁 До 11 октября действует скидка 5000 рублей

↘️ Узнать подробности и записаться

Кому подойдёт: Go-разработчикам уровня Junior+, бэкендерам, которые переходят на Go с PHP, Python или Java, и DevOps/SRE-инженерам, которым нужно понимать, как устроены Go-сервисы. Для старта нужно знать базовый синтаксис Go (типы данных, структуры, интерфейсы, горутины), работать в командной строке Linux и иметь базовые навыки Docker.

2.9k 0 11 4
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot