ЛентаСтатьиЗаметкиКурсы
Рецепты
← Все курсы

Мультипоточность в Go: всё, что нужно знать

GoConcurrencyGoroutinesChannelsMicroservices

Курс-спецкурс по конкурентности Go: весь слой «горутины и всё, что вокруг них» — от планировщика GMP и модели памяти до паттернов работы с системами микросервиса (HTTP, БД, кэш, брокеры, внешние API).

Как устроен курс. Каждый модуль открывается конкретной задачей или инцидентом — импорт 100 тысяч строк при десяти соединениях, горячий ключ, который истёк, партнёрский API, который лёг. Паттерн появляется как ответ на задачу, а не как абстракция сама по себе. Ключевые механизмы — singleflight, token bucket, circuit breaker, диспетчер очередей — пишем своими руками на stdlib, чтобы видеть устройство, и только потом смотрим на готовые библиотеки.

Пять блоков:

  1. Модель исполнения (модули 1–2) — планировщик GMP, GOMAXPROCS, модель памяти, happens-before и гонки.
  2. Примитивы координации (3–5) — каналы и владение, select, мьютексы, atomic, sync.Once/Map/Pool.
  3. Паттерны конкурентных вычислений (6–9) — pipelines и fan-in/out, worker pool и лимиты, rate limiting, таймауты, retry и hedged requests.
  4. Микросервисные паттерны (10–13) — конкурентный HTTP-сервер, graceful shutdown, circuit breaker и bulkhead, очереди в процессе.
  5. Системы вокруг (14–18) — параллельные запросы к БД, кэш и singleflight, конкурентные консьюмеры брокеров, утечки горутин и диагностика, капстоун-краулер.

Вход: go-basic m6 (горутины, каналы, мьютексы) и m8 (HTTP) — или эквивалентный опыт. Выход: mq-track (гарантии и брокеры), pg-clickhouse (данные), go-advanced m3 (распределённые паттерны — Saga, outbox).

Формат: теория с Go-кодом в каждом модуле, детерминированные сниппеты в песочнице (можно запускать и ломать), практика с артефактом, квиз, итоги и мостик. ~8 недель в спокойном темпе.

Программа курса

1

Модуль 1: Планировщик GMP и цена GOMAXPROCS

→
2

Модуль 2: Модель памяти и гонки

→
3

Модуль 3: Каналы: владение и закрытие

→
4

Модуль 4: select: мультиплексирование и таймауты

→
5

Модуль 5: Мьютексы, atomic и sync-примитивы

→
6

Модуль 6: Конвейеры: fan-out, fan-in и отмена

→
7

Модуль 7: Worker pool и лимиты параллелизма

→
8

Модуль 8: Rate limiting: token bucket и окна

→
9

Модуль 9: Таймауты, ретраи и hedged requests

→
10

Модуль 10: HTTP-сервер под конкурентной нагрузкой

→
11

Модуль 11: Graceful shutdown без 502

→
12

Модуль 12: Circuit breaker и bulkhead: пережить лежащего партнёра

→
13

Модуль 13: Очереди в процессе: диспетчер и ретраи

→
14

Модуль 14: Конкурентность и база данных

→
15

Модуль 15: Кэш, singleflight и thundering herd

→
16

Модуль 16: Консьюмеры брокеров: prefetch, ack, backpressure

→
17

Модуль 17: Утечки горутин и диагностика

→
18

Модуль 18: Капстоун: конкурентный краулер

→
Начать обучение