CourseHunter
  • Категории
  • Источники
  • Все курсы
  • Разделы
  • Книги
English
Русский
Українська
Голубая
Фиолетовая
Cветлая
Терминал
Norton
Войти
Главная страницаКатегория golang (google go)Распределённые системы на Go

Распределённые системы на Go

Distributed Systems in Go

Joel Bryan Juliano logo
Joel Bryan Juliano
★5 (всего оценок - 1)
Распределённые системы на Go
Начать Сейчас
Категория
Golang (Google Go)
Дата добавления
3 окт. 2026 г., 00:52
Язык
Английский

«Распределённые системы на Go» (Distributed Systems in Go) — практическое руководство по проектированию, разработке и развёртыванию надёжных распределённых систем с использованием языка Go. Книга основана на реальном опыте автора в создании и эксплуатации облачных распределённых систем и охватывает весь путь от разработки отдельных HTTP-сервисов до построения полноценной микросервисной архитектуры.

Рано или поздно каждый Go-разработчик сталкивается с ситуацией, когда одного приложения становится недостаточно. Возникает необходимость создавать несколько взаимодействующих сервисов, обеспечивать аутентификацию, организовывать хранение данных, настраивать обмен сообщениями и поддерживать стабильную работу системы даже при возникновении сбоев.

Знание теоремы CAP и основных принципов распределённых вычислений — лишь отправная точка. Настоящие сложности начинаются в реальных условиях, когда потребители Kafka не успевают обрабатывать сообщения, межсервисные запросы завершаются по тайм-ауту, а определить источник проблемы становится всё сложнее.

Эта книга помогает преодолеть разрыв между теорией и практикой. Автор последовательно демонстрирует создание полноценной распределённой системы, рассматривая аутентификацию, базы данных, очереди сообщений, gRPC, механизмы отказоустойчивости и распределённую трассировку.

Каждая глава посвящена определённому архитектурному шаблону, который затем реализуется в виде повторно используемых компонентов платформенного SDK. К 15-й главе читатель создаст готовую к развёртыванию систему из шести сервисов и собственный SDK, упрощающий разработку последующих приложений.

Что вы изучите и создадите

  • HTTP-сервисы: разработка HTTP-сервисов на Go с использованием компонуемых промежуточных обработчиков (middleware) без необходимости подключения дополнительных фреймворков.
  • Аутентификация и безопасность: реализация JWT-аутентификации с цифровой подписью ECDSA и подключаемыми агентами аутентификации.
  • PostgreSQL и управление данными: организация работы с базами данных, выполнение миграций без остановки системы и реализация паттерна Transactional Outbox.
  • Apache Kafka: создание производителей и потребителей сообщений, управление обратным давлением (backpressure) и использование очередей недоставленных сообщений (Dead Letter Queue).
  • gRPC и межсервисное взаимодействие: настройка взаимодействия между сервисами с механизмами повторных попыток, тайм-аутами и автоматическими выключателями (Circuit Breaker).
  • Распределённая согласованность: применение паттерна Saga, ключей идемпотентности и механизмов сверки данных (Reconciliation).
  • Мониторинг и наблюдаемость: внедрение структурированного логирования с помощью slog, сбор метрик через Prometheus и распределённая трассировка с использованием OpenTelemetry.
  • Тестирование и отказоустойчивость: тестирование компонентов на реальной инфраструктуре с помощью Testcontainers, моделирование сбоев и применение подходов хаос-тестирования.
  • Развёртывание в Kubernetes: подготовка конфигурационных манифестов и развёртывание полноценной распределённой системы, состоящей из шести сервисов.

Практический результат

Главная особенность книги — последовательное создание реальной системы, а не изучение отдельных инструментов в отрыве от практики.

Каждый пример кода является полным и самодостаточным. По мере изучения материала читатель не только осваивает архитектурные подходы, но и формирует собственную библиотеку повторно используемых компонентов.

В результате вы получите работающую распределённую систему из шести сервисов, готовую к развёртыванию, а также платформенный SDK, который позволит быстрее и эффективнее создавать новые сервисы.

Для кого эта книга

Книга предназначена для Go-разработчиков, которые уже умеют создавать отдельные приложения и сервисы, но хотят перейти к проектированию полноценных распределённых систем.

Она будет особенно полезна инженерам, работающим с микросервисами, облачной инфраструктурой, базами данных и асинхронной обработкой сообщений.

Если вам приходилось копировать middleware без полного понимания его устройства, разбираться с ошибками context deadline exceeded или искать причины сбоев сразу в нескольких взаимодействующих сервисах, эта книга поможет систематизировать знания и освоить практические инструменты для решения подобных задач.

Автор - Joel Bryan Juliano

Joel Bryan Juliano logo

Joel Bryan Juliano

Джоэл Брайан Джулиано (Joel Bryan Juliano) — инженер-программист с более чем 20-летним опытом работы в IT. За свою карьеру работал в различных отраслях, включая спортивные стриминговые сервисы и кибербезопасность, накопив обширный опыт разработки программного обеспечения и решения сложных технических задач.Родом с Филиппин, сегодня является гражданином Нидерландов и проживает с семьёй в Амстердаме. Автор технических книг, в которых делится профес

LinkedInX (Twitter)GitHub
Автор

Другие материалы в этой категории

Проектирование современных распределённых веб-сервисов

Проектирование современных распределённых веб-сервисов

Распределённые системы

Распределённые системы

Мышление в контексте распределённых систем

Мышление в контексте распределённых систем

Демистификация распределенных задач с помощью Celery, SQS и Python

Демистификация распределенных задач с помощью Celery, SQS и Python

Создание современных распределенных систем с помощью Java

Создание современных распределенных систем с помощью Java

Микросервисы и распределенные системы

Микросервисы и распределенные системы

Комментарии
 logo
  • DimaMaimesko logo
    DimaMaimesko
    2 окт. 2026 г., 22:09
    Thanks!
КонтактыРаспространенные вопросыПлейлистыПриватностьУсловия