--- aliases: tags: - зрелость/🌱 date: - - 2024-04-12 zero-link: - "[[00 Архитектура ПО]]" parents: linked: --- Эта модель определяет три направления для масштабирования приложений: X, Y, Z. ![](cfac08bc-c9b0-4894-ab40-7e319c5bc13b.jpg) ## Масштабирование по оси Х Масштабирование по оси X часто применяют в монолитных приложениях. Запускаются несколько экземпляров про­граммы, размещенных за балансировщиком нагрузки. Балансировщик распределяет запросы между N одинаковыми экземплярами. Это отличный способ улучшить мощность и доступность приложения. Это [горизонтальное масштабирование](Горизонтальное%20масштабирование.md). ![](df56a7dd-ec73-4188-9502-8b6db06762f6.jpg) ## Масштабирование по оси Z Масштабирование по оси Z тоже предусматривает запуск нескольких экземпляров монолитного приложения, но в этом случае, в отличие от масштабирования по оси X, каждый экземпляр отвечает за определенное подмножество данных. Маршрутизатор, выставленный впереди, задействует атрибут запроса, чтобы на­ править его к подходящему экземпляру. Для этого, к примеру, можно использовать поле userid. > Похоже на [Шардирование в БД](Шардирование%20в%20БД.md) ![](Pasted%20image%2020240412202007.png) ## Масштабирование по оси Y Масштабирование по осям X и Z увеличивает мощность и доступность приложения. Но ни один из этих подходов не решает проблем с усложнением кода и процесса раз­ работки. Чтобы справиться с ними, следует применить масштабирование по оси У, или функциональную декомпозицию (разбиение). Монолитное приложение разбивается на отдельные сервисы. ![](99a03ca9-8253-4085-912e-459dd62f839d.jpg)