Итоги
Основные категории:
- Масштабирование может быть горизонтальным и вертикальным;
- Микросервисная архитектура является наиболее эффективным способом масштабирования за счёт разделения монолита на микросервисы;
- Коммуникация бывает синхронная (HTTP, REST, gRPC), асинхронная (Rabbit, Kafka) и реактивная (WebSocket);
- RabbitMQ использует модель очередей, а Kafka основана на топиках с партициями.
Три основных правила использования технологий масштабирования:
- Выбор метода масштабирования зависит от текущих потребностей системы и её потенциала роста.
- При проектировании микросервисной архитектуры важно обеспечить независимость сервисов и чёткость их взаимодействия через API.
- Брокеры сообщений должны соответствовать специфике задач - RabbitMQ для очередей, Kafka для потоковой обработки данных.
Три фундаментальных момента:
- Правильная декомпозиция монолитного приложения на микросервисы критична для эффективности всей системы.
- Надёжная коммуникация между сервисами требует тщательного выбора протоколов и подходов к интеграции.
- Масштабируемость должна быть заложена в архитектуру системы изначально.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Масштабирование — это сам процесс увеличения мощности системы, чтобы она выдерживала эту нагрузку. Для реализации используется фреймворк FastAPI, который обеспечивает высокую производительность и автоматическую генерацию документации API. Go обладает рядом архитектурных особенностей, которые делают его идеальным кандидатом для реализации микросервисов. Одной из ключевых характеристик является модель конкурентности, основанная на… Балансировка нагрузки — это процесс распределения входящих запросов между несколькими серверами или узлами системы для обеспечения равномерной загрузки и предотвращения перегрузки отдельных… Монолитное приложение (Monolith) — это традиционная архитектура программного обеспечения, в которой все компоненты системы (бизнес-логика, пользовательский интерфейс, база данных и т.д.) объединены в… Интеграция микросервисов — это процесс объединения независимых сервисов в единую систему, чтобы они могли эффективно взаимодействовать и решать общие задачи. Мы уже изучали асинхронность, поэтому можем уже понять, что асинхронная коммуникация — это способ взаимодействия, при котором отправитель не ждёт немедленного ответа от получателя. Это особенно важно… Синхронная коммуникация — это способ взаимодействия, при котором отправитель отправляет запрос и ждёт ответа от получателя. Этот подход широко используется в микросервисной архитектуре для операций,… REST — это просто набор правил, как писать HTTP-запросы так, чтобы тебя понимали другие программисты. Это не технология, не протокол, не библиотека. Это как правила этикета для API. Заголовок Sec-WebSocket-Key используется для предотвращения кэширования и проверки подлинности. Брокер сообщений — это программное обеспечение или система, которая управляет обменом данными между приложениями, сервисами или системами. RabbitMQ использует модель производитель-потребитель с промежуточным хранилищем — очередью — Producer (Производитель) отправляет сообщения в RabbitMQ, может быть любым приложением или системой,…Масштабирование микросервисных систем
Первые шаги к микросервисам
Go для микросервисов
Балансировка нагрузки
Архитектура микросервисов (MSA) и распределённые системы
Коммуникация и интеграция
Асинхронная коммуникация
Синхронная коммуникация
REST
Реактивная коммуникация
Брокеры сообщений
RabbitMQ