Масштабирование микросервисных систем
Масштабирование — это сам процесс увеличения мощности системы, чтобы она выдерживала эту нагрузку.
Первые шаги к микросервисам
Для реализации используется фреймворк FastAPI, который обеспечивает высокую производительность и автоматическую генерацию документации API.
Go для микросервисов
Язык программирования Go (Golang) представляет собой мощный инструмент для создания высоконагруженных распределенных систем.
Балансировка нагрузки
Балансировка нагрузки - распределение трафика между узлами для масштабирования, отказоустойчивости и сглаживания пиков.
Архитектура микросервисов (MSA) и распределённые системы
Распределённая система — это совокупность независимых компонентов (серверов, узлов, микросервисов), которые взаимодействуют друг с другом через сеть для выполнения общей задачи.
Авторизация в интеграционных сценариях
Интеграционная авторизация: Basic и Bearer в Authorization, mTLS на транспорте, JWT и API-ключи, OAuth Client Credentials.
Коммуникация и интеграция
Интеграция микросервисов — это процесс объединения независимых сервисов в единую систему, чтобы они могли эффективно взаимодействовать и решать общие задачи.
Асинхронная коммуникация
Мы уже изучали асинхронность, поэтому можем уже понять, что асинхронная коммуникация — это способ взаимодействия, при котором отправитель не ждёт немедленного ответа от получателя.
Синхронная коммуникация
Синхронная коммуникация — это способ взаимодействия, при котором отправитель отправляет запрос и ждёт ответа от получателя.
REST
REST — это просто набор правил, как писать HTTP-запросы так, чтобы тебя понимали другие программисты. Это не технология, не протокол, не библиотека. Это как правила этикета для API.
Реактивная коммуникация
Реактивные транспорты в вебе и интеграциях — WebSocket, SSE, потоки событий и типовые паттерны на стороне клиента и сервера.
Брокеры сообщений
Брокер сообщений — это программное обеспечение или система, которая управляет обменом данными между приложениями, сервисами или системами.
RabbitMQ
RabbitMQ - очереди сообщений, модель производитель–потребитель и типовые сценарии интеграции микросервисов.
Kafka
Архитектура, надёжность, exactly-once, Connect, Streams, мониторинг и безопасность Apache Kafka. KRaft, ACL, MirrorMaker.
Java-приложение с Apache Kafka и PostgreSQL
process.roles — это ключевая настройка KRaft-режима. Она определяет, какие функции будет выполнять данный узел Kafka.
Push, Pull, Webhooks
Push, pull и webhooks - модели доставки событий и данных между сервисами, включая мгновенные HTTP-уведомления.
Справочник по SOAP
SOAP-сообщение — это XML-документ с фиксированной структурой, определяемой схемами http — //schemas.xmlsoap.org/soap/envelope/ (SOAP 1.1) или http — //www.w3.org/2003/05/soap-envelope (SOAP 1.2).
Справочник по gRPC
Группа полей, из которых только одно может быть установлено в один момент времени. Используется для union-подобной семантики.
Справочник по GraphQL
Шпаргалка по GraphQL — таблицы синтаксиса, API, команд и параметров — для быстрого поиска фактов.
Справочник по RabbitMQ
Команды rabbitmqctl, типы exchange, свойства AMQP, политики, порты и типовые сценарии асинхронной интеграции через RabbitMQ.
Справочник по Apache Kafka
Команды kafka-* , топики и партиции, настройки producer/consumer/broker, consumer groups и эксплуатация кластера Kafka.
Реализация интеграции
Проектирование API — это процесс формирования семантически устойчивого, предсказуемого и безопасного интерфейса, который учитывает требования к надёжности, масштабируемости, совместимости и удобству.
Проектирование API
Проектирование интерфейса прикладного программирования (Application Programming Interface, API) — это системная инженерная дисциплина, которая требует от разработчика осознанного подхода к.
PACELC и компромиссы распределённых систем
PACELC дополняет CAP-теорему: при обычной работе сети распределённое хранилище выбирает между низкой задержкой (latency) и строгой согласованностью (consistency). Разбор терминов и примеров для проектирования бэкенда.
Интеграции — Basic, Bearer и mTLS на практике
Как в продакшене настраивают Basic Auth, Bearer-токены и mTLS — gateway, секреты, ротация, примеры на C#, Java, Python, TypeScript, Go, PHP.
Транспортные механизмы
В современных информационных системах обмен данными между компонентами — это фундаментальная задача.
Микросервисы и интеграция — итоги
Итоги раздела «Микросервисы и интеграция» — FAQ и краткие ответы по теме.
Микросервисы и интеграция — чек-лист
Чек-лист раздела «Микросервисы и интеграция» — вопросы для самопроверки.
Микросервисы и интеграция — о разделе
Микросервисная архитектура, коммуникация между сервисами, брокеры сообщений и практика интеграции в продакшене.