digital-garden/dev/architecture/Масштабирование по осям X, Y и Z.md
Struchkov Mark 701b685334
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-12-03 22:19:18 +03:00

61 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
- cube scaling
- Куб масштабирования приложений
tags:
- maturity/🌱
date:
- - 2024-04-12
---
Для [[../../meta/zero/00 HighLoad|систем с высокой нагрузкой]] [[Масштабирование информационной системы|масштабирование]] является ключевым аспектом архитектурного проектирования. Концепция масштабирования по осям X, Y и Z помогает понять, как распределить нагрузку и обеспечить стабильность работы приложения.
![](../../meta/files/images/cfac08bc-c9b0-4894-ab40-7e319c5bc13b.jpg)
## Масштабирование по оси Х
Масштабирование по оси X — это увеличение количества одинаковых экземпляров приложения, работающих за [[highload/Балансировка нагрузки|балансировщиком нагрузки]]. Этот подход соответствует понятию [[highload/Горизонтальное масштабирование|горизонтального масштабирования]].
**Как это работает**: Запросы от клиентов распределяются [[highload/Балансировка нагрузки|балансировщиком]] между несколькими идентичными экземплярами системы.
**Основная цель**:
- Увеличение [[Throughput|пропускной способности]].
- Повышение [[../../../../_inbox/Reliability|отказоустойчивости]] за счет резервирования.
**Пример применения**: [[Монолитная архитектура|Монолитные приложения]], где запуск дополнительных экземпляров не требует изменения кода.
![](../../meta/files/images/df56a7dd-ec73-4188-9502-8b6db06762f6.jpg)
## Масштабирование по оси Z
Масштабирование по оси Z предполагает разделение системы на подмножества данных, где каждый экземпляр приложения отвечает за обработку определенного набора данных.
**Как это работает**: Входящий запрос направляется маршрутизатором к соответствующему экземпляру на основании определенного атрибута (например, `userid` или региона).
**Основная цель**:
- Уменьшение нагрузки на каждый экземпляр.
- Ускорение обработки запросов за счет уменьшения объема данных, с которыми работает каждый узел.
**Пример применения**: [[../../../../_inbox/Шардирование БД|Шардирование]] баз данных, где данные распределяются между разными серверами.
![](../../meta/files/images/Pasted%20image%2020240412202007.png)
## Масштабирование по оси Y
Масштабирование по оси Y основывается на функциональной [[Декомпозиция на микросервисы|декомпозиции системы]]. Вместо дублирования или разделения данных приложение разбивается на отдельные модули или сервисы.
**Как это работает**: Монолитное приложение делится на самостоятельные модули или микросервисы, каждый из которых отвечает за свою часть функционала.
**Основная цель**:
- Упрощение разработки и поддержки системы.
- Устранение узких мест, связанных с усложнением монолита.
**Пример применения**: [[../../../../wiki/zero/00 Микросервисная архитектура|Микросервисная архитектура]], где каждый сервис обрабатывает свои задачи (например, управление пользователями, обработка платежей, логирование).
![](../../meta/files/images/99a03ca9-8253-4085-912e-459dd62f839d.jpg)
***
## Мета информация
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
**Родитель**:: [[Масштабирование информационной системы]]
**Источник**::
**Автор**::
**Создана**:: [[2024-04-12]]
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->