Трёхзвенная структура.md

This commit is contained in:
Struchkov Mark 2024-09-10 17:27:24 +03:00
parent 604ffc55bd
commit 16bb80f919
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
6 changed files with 123 additions and 1 deletions

View File

@ -0,0 +1,34 @@
---
aliases:
tags:
- maturity/🌱
date:
- - 2024-04-13
zero-link:
- "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]"
parents:
- "[[../garden/ru/dev/architecture/Фронтенд|Фронтенд]]"
linked:
---
Rеverse proxy позволяет снять часть задач с [[Бэкенд|бэкенда]].
Rеverse proxy решает следующие проблемы:
- **Организация https шифрования.** Клиенты подключаются к Reverse proxy по https, а прокси подключается к бэкенду по http.
- Буферизация запросов и ответов.
- Валидация http
- Борьба с медленными клиентами. Клиенты с плохим интернет соединением могут долго удерживать канал. Reverse proxy с бэкендом быстро обмениваются данными, Reverse Proxy буферизирует ответ с бэкенда и может довольно долго удерживать соединение с клиентом скармливая ему ответ.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
**Родитель**:: [[Фронтенд]]
**Источник**::
**Автор**::
**Создана**::
### Дополнительные материалы
-
### Дочерние заметки
```dataview
LIST
FROM [[]]
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
```

View File

@ -0,0 +1,35 @@
---
aliases:
- бэкенде
- backend
- бэкенда
- бэкенду
tags:
- maturity/🌱
date:
- - 2024-04-13
zero-link:
- "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]"
parents:
linked:
---
Бэкенд один из самых больших бездельников в веб-архитектуре. У него есть всего 2 задачи:
- Сетевой ввод-вывод. Обычно сводится к общению с [Rеverse proxy](Rеverse%20proxy.md) прием http-запроса и ответ на него, и со всевозможными сервисами, которые хранят данные это могут быть БД, очереди, memcaсhed и т.п.
- Склеивание строк сериализовать данные в JSON, сформировать шаблон на основе html, посчитать sh1 или md5? выполнить сжатие данных.
А что такое бизнес-логика в бэкенде? Это проверки наподобие "если значение переменных больше 3-х, делай это", "если пользователь авторизован, покажи одно, если не авторизован покажи другое". Бывают, конечно, отдельные задачи, например, по изменению размера картинки, преобразования видео, но чаще всего такие задачи решаются вне бэкенда с использованием очередей, воркеров и т.д.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
**Родитель**::
**Источник**::
**Автор**::
**Создана**:: [[2024-04-13]]
### Дополнительные материалы
- [[../../../../_inbox/Бэкенд большую часть времени ждет|Бэкенд большую часть времени ждет]]
### Дочерние заметки
```dataview
LIST
FROM [[]]
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
```

View File

@ -0,0 +1,34 @@
---
aliases:
- трехзвенная структура
tags:
- maturity/🌱
date:
- - 2024-05-23
zero-link:
- "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]"
parents:
linked:
---
Мы выделяем некие звенья в обработке наших запросов, и каждое звено специализируется на обработке или выполнении определенного класса задач.
![](Pasted%20image%2020240523133746.png)
- [Фронтенд](Фронтенд.md). предназначен для быстрой обработки легких данных, как правило, статики. Эти запросы обрабатываются тут и не проходят на массивный, тяжелый бэкенд. Для фронтенда используются такие легковесные сервера, как [nginx](00%20Nginx.md). В разработке подобных серверов огромное внимание уделяется тому, какое количество ресурсов тратится на обработку одного запроса.
- [Бэкенд](Бэкенд.md), как правило, это тяжелые приложения, в которых происходят вычисления, зашита бизнес-логика, и обрабатывать статические запросы бэкендом попросту неэффективно.
- Следующий слой это хранение данных, в простейшем варианте [база данных](00%20Базы%20Данных.md).
***
## Мета информация
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
**Родитель**::
**Источник**::
**Автор**::
**Создана**:: [[2024-05-23]]
### Дополнительные материалы
-
### Дочерние заметки
```dataview
LIST
FROM [[]]
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
```

View File

@ -0,0 +1,19 @@
---
aliases:
- фронтенд
tags:
- maturity/🌱
date:
- - 2024-05-23
zero-link:
- "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]"
parents:
linked:
---
- [[Rеverse proxy]]
Для чего нужен фронтенд
- Отдача статического контента
- Буферизация запросов
- Масштабирование бэкендов
- Обслуживание медленных клиентов.

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

View File

@ -5,8 +5,8 @@ parents:
- "[[00 Разработка]]" - "[[00 Разработка]]"
title: Архитектура ПО title: Архитектура ПО
--- ---
- [Трёхзвенная структура](../../dev/architecture/Трёхзвенная%20структура.md)
- [Монолитная архитектура](Монолитная%20архитектура.md) - [Монолитная архитектура](Монолитная%20архитектура.md)
- [Микросервисная архитектура](Микросервисная%20архитектура.md) - [Микросервисная архитектура](Микросервисная%20архитектура.md)
- [Service Oreinted Architecture](Service%20Oreinted%20Architecture.md) - [Service Oreinted Architecture](Service%20Oreinted%20Architecture.md)
- [Трёхзвенная структура](Трёхзвенная%20структура.md)
- [[00 HighLoad|HighLoad]] - [[00 HighLoad|HighLoad]]