Программирование [Joel Bryan Juliano] Распределённые системы на Go

Регистрация
11 Сен 2026
Сообщения
6,613
Реакции
29
Автор: Joel Bryan Juliano​
Название: Распределённые системы на Go​

cover.jpg

ЯзыкАнглийский Вес архива12 МБ


«Распределённые системы на 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 или искать причины сбоев сразу в нескольких взаимодействующих сервисах, эта книга поможет систематизировать знания и освоить практические инструменты для решения подобных задач.

СКАЧАТЬ:
Скрытое содержимое! Войти Зарегистрироваться

 

Похожие темы

11,106Темы
11,168Сообщения
850Пользователи
AcruqtНовый пользователь
Сверху