diff --git a/dev/architecture/API Gateway.md b/dev/architecture/API Gateway.md new file mode 100644 index 00000000..736b017b --- /dev/null +++ b/dev/architecture/API Gateway.md @@ -0,0 +1,29 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +![[../../meta/files/images/Pasted image 20241103020227.png|600]] + +**Шаг 1**: Клиент отправляет [[../network/HTTP|HTTP]]-запрос на API-шлюз. +**Шаг 2**: API-шлюз анализирует и проверяет атрибуты запроса. +**Шаг 3**: API-шлюз выполняет проверки по спискам разрешений и запретов (allow-list/deny-list). +**Шаг 4**: API-шлюз взаимодействует с поставщиком идентификаций для аутентификации и авторизации. +**Шаг 5**: К запросу применяются правила ограничения скорости. Если превышен лимит, запрос отклоняется. +**Шаги 6 и 7**: После прохождения базовых проверок API-шлюз ищет нужный сервис для маршрутизации, сопоставляя путь запроса. +**Шаг 8**: API-шлюз преобразует запрос в нужный протокол и отправляет его на [[бэкенд]] микросервисов. +**Шаги 9-12**: API-шлюз обрабатывает ошибки и справляется с длительными сбоями (circuit break). Также он может использовать стек ELK (Elastic-Logstash-Kibana) для логирования и мониторинга. Иногда данные кэшируются в самом API-шлюзе. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/architecture/CAP теорема.md b/dev/architecture/CAP теорема.md index 69bd93c3..cab053b6 100644 --- a/dev/architecture/CAP теорема.md +++ b/dev/architecture/CAP теорема.md @@ -9,6 +9,8 @@ zero-link: parents: linked: --- +![[../../meta/files/images/Pasted image 20241103022605.png]] + CAP теорема — это принцип, описывающий фундаментальные ограничения, с которыми сталкиваются распределённые вычислительные системы в контексте обеспечения следующих трёх свойств: - **Согласованность (Consistency)**: Каждый раз, когда данные читаются, возвращается самое последнее записанное значение или ошибка. С другими словами, операции с данными выглядят так, будто выполняются в некоторой строгой последовательности, одна за другой - **Доступность (Availability)**: Каждый запрос на получение или запись данных получает ответ, независимо от состояния системы, даже если некоторые части системы вышли из строя. @@ -16,6 +18,8 @@ CAP теорема — это принцип, описывающий фунда ==Согласно теореме CAP, в любой момент времени система может обеспечивать только два из этих трёх свойств.== Это означает, что при разработке системы приходится принимать компромисс между этими свойствами в зависимости от требований приложения и условий эксплуатации. Например, если для системы критически важна согласованность данных и её устойчивость к разделению, возможно придётся пожертвовать её доступностью в некоторых сценариях. + + ## Свободные заметки - Google заявляет, что их продукт Google Spanner якобы нарушает CAP теорему. *** diff --git a/dev/architecture/Event Loop.md b/dev/architecture/Event Loop.md index 4ddb9159..8e229868 100644 --- a/dev/architecture/Event Loop.md +++ b/dev/architecture/Event Loop.md @@ -2,6 +2,7 @@ aliases: - событийного цикла - событийный цикл + - single-threaded execution loop tags: - maturity/🌱 date: 2023-10-26 diff --git a/dev/architecture/highload/Балансировка нагрузки.md b/dev/architecture/highload/Балансировка нагрузки.md new file mode 100644 index 00000000..81960736 --- /dev/null +++ b/dev/architecture/highload/Балансировка нагрузки.md @@ -0,0 +1,30 @@ +--- +aliases: + - балансировку нагрузки +tags: + - maturity/🌱 +date: 2024-06-13 +--- +![[../../../meta/files/images/Pasted image 20241103021050.png]] + +**Статические алгоритмы** +- **Round robin**. Запросы от клиентов отправляются поочередно разным экземплярам сервиса. Как правило, сервисы должны быть stateless (не сохранять состояние между запросами). +- **Sticky round-robin** Улучшенная версия алгоритма round robin. Если первый запрос от Алисы попал на сервис A, то и все последующие её запросы будут отправляться на этот же сервис A. +- **Weighted round-robin** Администратор может задать вес для каждого сервиса. Сервисы с большим весом будут обрабатывать больше запросов, чем другие. +- **Hash (Хеширование)** Этот алгоритм применяет хеш-функцию к IP-адресу или URL запроса. Запросы направляются на соответствующие экземпляры сервиса в зависимости от результата [[../../cryptography/Хеш-функция|хеш-функции]]. + +**Динамические алгоритмы** +- **Least connections**. Новый запрос отправляется экземпляру сервиса с наименьшим числом текущих соединений. +- **Least response time.** Новый запрос отправляется на экземпляр сервиса с самым быстрым временем отклика. + +*** +## Мета информация +**Область**:: [[../../../meta/zero/00 HighLoad|00 HighLoad]] +**Родитель**:: +**Источник**:: +**Автор**:: +**Создана**:: [[2024-06-13]] +### Дополнительные материалы +- +### Дочерние заметки + diff --git a/dev/architecture/Контракт взаимодействия.md b/dev/architecture/Контракт взаимодействия.md index 21c37b6e..75d7d186 100644 --- a/dev/architecture/Контракт взаимодействия.md +++ b/dev/architecture/Контракт взаимодействия.md @@ -27,7 +27,7 @@ linked: **Контракт API**: В контексте API контрактом является описание того, как клиент может взаимодействовать с API. Это включает в себя форматы запросов и ответов, методы HTTP, параметры, типы данных, кодировки и обработку ошибок. -Пример контракта REST API: +Пример контракта [[../system-design/RESTful|REST]] API: - Метод: `POST /users` - Входные данные: JSON-объект с полями `name` и `email` - Ответ: код 201 (Created) и объект пользователя diff --git a/dev/architecture/Кэширование.md b/dev/architecture/Кэширование.md index 20c5ad10..47634188 100644 --- a/dev/architecture/Кэширование.md +++ b/dev/architecture/Кэширование.md @@ -26,15 +26,18 @@ linked: ## Уровни кэширования ![](../../meta/files/images/Pasted%20image%2020240617195054.png) -![](../../meta/files/images/Pasted%20image%2020240701115612.png) +![[../../meta/files/images/Pasted image 20241103033544.png]] Уровни кэширования: -- [Кэширование в приложении](Кэширование%20в%20приложении.md) +- [Кэширование на стороне браузера](highload/Кэширование%20на%20стороне%20браузера.md). Ответы HTTP могут кэшироваться браузером. При первом запросе данных по HTTP они возвращаются с политикой истечения срока действия в заголовке HTTP. При повторном запросе данных клиентское приложение сначала пытается получить их из кэша браузера. - [Кэширование на стороне Nginx](../devops/nginx/Кэширование%20на%20стороне%20Nginx.md) -- [Кэширование на стороне браузера](highload/Кэширование%20на%20стороне%20браузера.md) -- [Content Delivery Network](highload/Content%20Delivery%20Network.md) +- [Content Delivery Network](highload/Content%20Delivery%20Network.md). CDN кэширует статические веб-ресурсы. Клиенты могут получать данные с ближайшего узла CDN. +- **Балансировщик нагрузки**: Балансировщик также может кэшировать ресурсы. +- [Кэширование в приложении](Кэширование%20в%20приложении.md). В сервисах есть несколько уровней кэша. Если данные не находятся в кэше процессора, сервис пытается получить их из памяти. Иногда в сервисе есть вторичный уровень кэша для хранения данных на диске. +- **Распределённый кэш**: Распределённые кэши, такие как Redis, хранят пары ключ-значение в памяти для множества сервисов. Это обеспечивает значительно лучшую производительность чтения и записи по сравнению с базой данных. +- **База данных**: Даже в базе данных есть различные уровни кэша -Виды кэширования: +**Виды кэширования:** - Сквозное. Все запросы проходят через кэш. [Схема](../../meta/files/images/Pasted%20image%2020240617194731.png). - Кэширование на стороне сервиса. [Схема](../../meta/files/images/Pasted%20image%2020240617194759.png). - Опережающее. Кладем данные в кэш заранее. [Схема](../../meta/files/images/Pasted%20image%2020240617194938.png). @@ -45,7 +48,9 @@ linked: При желании результат кэширования можно сжать используя [[../algorithm/GZIP|GZIP]]. Однако, приходится использовать [[../other/Base64|Base64]], чтобы преобразовать байты полученные от gzip в строку, и уже в таком виде положить в Redis. Не смотря на то, что Base64 увеличивает размер строки на 33% все равно получается намного компактнее, чем просто JSON. -Рано или поздно исходные данные изменяются, и кэш перестает быть валидным. Часто важно, чтобы кэш сбрасывался сразу же за изменением. За это отвечает [[highload/Инвалидация кэша|Инвалидация кэша]] +Рано или поздно исходные данные изменяются, и кэш перестает быть валидным. Часто важно, чтобы кэш сбрасывался сразу же за изменением. За это отвечает [[highload/Инвалидация кэша|Инвалидация кэша]]. + +![[../../meta/files/images/Pasted image 20241103035011.png]] *** ## Мета информация **Область**:: [[../../meta/zero/00 HighLoad|00 HighLoad]] diff --git a/dev/architecture/Паттерн проектирования.md b/dev/architecture/Паттерн проектирования.md index 02d1b838..3abbd6a7 100644 --- a/dev/architecture/Паттерн проектирования.md +++ b/dev/architecture/Паттерн проектирования.md @@ -12,7 +12,25 @@ linked: --- - [[Dependency Injection]] - [[Порождающий паттерн проектирования]] - - [[Builder Pattern|Builder Pattern]] + +- Abstract Factory: создаёт группы связанных элементов. +- [[Builder Pattern|Builder Pattern]]: строит объекты поэтапно, разделяя процесс создания и внешний вид. +- Prototype: создаёт копии полностью подготовленных экземпляров. +- Singleton: One and Only — особый класс, имеющий только один экземпляр. +- Adapter: Universal Plug — соединяет объекты с разными интерфейсами. +- Bridge: Function Connector — связывает, как объект работает, с тем, что он делает. +- Composite: Tree Builder — формирует древовидные структуры из простых и сложных частей. +- Decorator: Customizer — добавляет функции объектам, не меняя их основу. +- Facade: One-Stop-Shop — представляет всю систему через один упрощённый интерфейс. +- Flyweight: Space Saver — эффективно использует небольшие, многократно используемые элементы. +- Proxy: Stand-In Actor — представляет другой объект, управляя доступом или действиями. +- Chain of Responsibility: Request Relay — передаёт запрос по цепочке объектов до его обработки. +- Command: Task Wrapper — превращает запрос в объект, готовый к выполнению. +- Iterator: Collection Explorer — последовательно получает доступ к элементам коллекции. +- Mediator: Communication Hub — упрощает взаимодействие между различными классами. +- Memento: Time Capsule — сохраняет и восстанавливает состояние объекта. +- Observer: News Broadcaster — уведомляет классы об изменениях в других объектах. +- Visitor: Skillful Guest — добавляет новые операции классу, не изменяя его. *** ## Мета информация diff --git a/dev/cryptography/Хеш-функция.md b/dev/cryptography/Хеш-функция.md index 86b6dd1a..93bb5e82 100644 --- a/dev/cryptography/Хеш-функция.md +++ b/dev/cryptography/Хеш-функция.md @@ -1,7 +1,6 @@ --- aliases: - хеш-функция - - хеш-функцию - хеш функция - хеш функции - хеш-функции diff --git a/dev/devops/nginx/Балансировка нагрузки в Nginx.md b/dev/devops/nginx/Балансировка нагрузки в Nginx.md index 4c09bad4..21ebedbe 100644 --- a/dev/devops/nginx/Балансировка нагрузки в Nginx.md +++ b/dev/devops/nginx/Балансировка нагрузки в Nginx.md @@ -5,7 +5,7 @@ tags: - maturity/🌱 date: 2024-10-30 --- -Блок `upstream` используется для указания списка серверов, между которыми nginx будет распределять входящие запросы, тем самым обеспечивая [[../../../../../_inbox/Балансировка нагрузки|балансировку нагрузки]]. В блоке `upstream` перечисляются серверы, между которыми будет распределяться нагрузка. +Блок `upstream` используется для указания списка серверов, между которыми nginx будет распределять входящие запросы, тем самым обеспечивая [[../../architecture/highload/Балансировка нагрузки|балансировку нагрузки]]. В блоке `upstream` перечисляются серверы, между которыми будет распределяться нагрузка. ```nginx upstream myapp { diff --git a/dev/fundamental/structure/Структура данных.md b/dev/fundamental/structure/Структура данных.md index c54f2dc6..8530d846 100644 --- a/dev/fundamental/structure/Структура данных.md +++ b/dev/fundamental/structure/Структура данных.md @@ -8,8 +8,11 @@ zero-link: parents: linked: --- +![[../../../meta/files/images/Pasted image 20241103022447.png]] + - [[Tree|Дерево]] - [[structure/Хеш-таблица|Хеш-таблица]] + *** ## Мета информация **Область**:: [[../../../meta/zero/00 Разработка|00 Разработка]] diff --git a/dev/network/HTTP.md b/dev/network/HTTP.md new file mode 100644 index 00000000..296ed893 --- /dev/null +++ b/dev/network/HTTP.md @@ -0,0 +1,40 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-10-29 +--- +![[../../meta/files/images/Pasted image 20241103014445.png]] + +**HTTP 1.0** был завершён и полностью задокументирован в 1996 году. Для каждого запроса к одному и тому же серверу требуется отдельное [[../../../../knowledge/dev/network/TCP|TCP]]-соединение. + +**HTTP 1.1** был опубликован в 1997 году. [[../../../../knowledge/dev/network/TCP|TCP]]-соединение теперь можно оставить открытым для повторного использования (постоянное соединение), но проблема блокировки первой строки (Head-of-Line, HOL) не решена. + +> [!NOTE] Head-of-Line, HOL +> Ситуация, когда лимит параллельных запросов в браузере исчерпан, и последующие запросы вынуждены ждать завершения предыдущих. + +**HTTP 2.0** был опубликован в 2015 году. Он решает проблему HOL на уровне приложения благодаря мультиплексированию запросов, устраняя блокировку HOL на этом уровне. Однако проблема остаётся на транспортном уровне ([[../../../../knowledge/dev/network/TCP|TCP]]). + +Как показано на диаграмме, HTTP 2.0 ввёл концепцию HTTP “streams”: это абстракция, которая позволяет мультиплексировать различные HTTP-запросы в рамках одного [[../../../../knowledge/dev/network/TCP|TCP]]-соединения. Каждый поток может передаваться независимо от остальных. + +**HTTP 3.0** впервые был опубликован в виде черновика в 2020 году. Он предложен как преемник HTTP 2.0. Вместо [[../../../../knowledge/dev/network/TCP|TCP]] для транспортного уровня используется протокол QUIC, что устраняет блокировку HOL на уровне транспорта. + +**QUIC** основан на протоколе **UDP**. Он вводит потоки как полноценные сущности на уровне транспорта. Потоки QUIC используют одно и то же соединение QUIC, поэтому для создания новых потоков не требуется дополнительных рукопожатий и медленного старта. При этом потоки QUIC доставляются независимо друг от друга, что означает, что в большинстве случаев потеря пакетов, влияющая на один поток, не затрагивает остальные. + + +![[../../meta/files/images/photo_2024-10-29 18.27.09.jpeg]] + +![[../../meta/files/images/Pasted image 20241103035804.png]] +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Сети|00 Сети]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/network/Open System Interconnection Reference Model.md b/dev/network/Open System Interconnection Reference Model.md index 1f5dac9c..f89c806e 100644 --- a/dev/network/Open System Interconnection Reference Model.md +++ b/dev/network/Open System Interconnection Reference Model.md @@ -6,14 +6,20 @@ tags: - maturity/🌱 date: - - 2024-01-11 -zero-link: [] -parents: -linked: --- > [!WARNING] > Теоретическая модель, которая на практике не используется +![[../../meta/files/images/Pasted image 20241103020737.png]] +- **Шаг 1**: Когда Устройство A отправляет данные на Устройство B по сети через протокол [[HTTP]], к данным сначала добавляется HTTP-заголовок на уровне приложения. +- **Шаг 2**: Затем к данным добавляется заголовок [[../../../../knowledge/dev/network/TCP|TCP]] или [[../../../../knowledge/dev/network/UDP|UDP]]. На транспортном уровне данные инкапсулируются в TCP-сегменты, содержащие информацию о портах отправителя и получателя, а также номер последовательности. +- **Шаг 3**: Сегменты инкапсулируются с IP-заголовком на сетевом уровне. IP-заголовок содержит IP-адреса отправителя и получателя. +- **Шаг 4**: На канальном уровне к IP-датаграмме добавляется MAC-заголовок с MAC-адресами отправителя и получателя. +- **Шаг 5**: Инкапсулированные кадры передаются на физический уровень и отправляются по сети в виде бинарных данных. +- **Шаги 6-10**: Когда Устройство B получает биты из сети, оно выполняет процесс деинкапсуляции, то есть обратный процесс инкапсуляции. Заголовки удаляются слой за слоем, и в итоге Устройство B может прочитать полученные данные. + + | Уровень | DataUnit | Описание | | ---- | ---- | ---- | | Physical | Bit | Сигналы | diff --git a/dev/network/Uniform Resource Identifier.md b/dev/network/Uniform Resource Identifier.md new file mode 100644 index 00000000..ed87c6ed --- /dev/null +++ b/dev/network/Uniform Resource Identifier.md @@ -0,0 +1,24 @@ +--- +aliases: + - URI +tags: + - maturity/🌱 +date: 2024-11-03 +--- +URI (Uniform Resource Identifier) — унифицированный идентификатор ресурса. Он определяет логический или физический ресурс в интернете. URL и URN являются подтипами URI: URL указывает расположение ресурса, а URN — его имя. + +![[../../meta/files/images/Pasted image 20241103021719.png]] + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Сети|00 Сети]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/network/Uniform Resource Locator.md b/dev/network/Uniform Resource Locator.md new file mode 100644 index 00000000..f1d7517f --- /dev/null +++ b/dev/network/Uniform Resource Locator.md @@ -0,0 +1,25 @@ +--- +aliases: + - URL +tags: + - maturity/🌱 +date: 2024-11-03 +--- +URL (Uniform Resource Locator) — унифицированный указатель ресурса, ключевое понятие в [[HTTP|HTTP]]. URL представляет собой адрес уникального ресурса в интернете. URL также можно использовать с другими протоколами, такими как FTP и JDBC. + +![[../../meta/files/images/Pasted image 20241103021925.png]] + + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Сети|00 Сети]] +**Родитель**:: [[Uniform Resource Identifier|Uniform Resource Identifier]] +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/snippet/Конфигурация gRPC соединения в Quarkus.md b/dev/snippet/Конфигурация gRPC соединения в Quarkus.md new file mode 100644 index 00000000..b914ebdc --- /dev/null +++ b/dev/snippet/Конфигурация gRPC соединения в Quarkus.md @@ -0,0 +1,43 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-04-03 +--- +```java +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; + +@ApplicationScoped +public class AppealSdkManager { + + private final Vertx vertx; + private final MutinyAppealGrpcApiGrpc.MutinyAppealGrpcApiStub grpcClient; + + public AppealSdkManager( + @ConfigProperty(name = "crm.service.appeal.grpc.host", defaultValue = "communication-appeal-service") String storageHost, + @ConfigProperty(name = "crm.service.appeal.grpc.port", defaultValue = "8090") int storagePort, + Vertx vertx + ) { + this.vertx = vertx; + final ManagedChannel channel = ManagedChannelBuilder.forAddress(storageHost, storagePort) + .usePlaintext() + .executor(MutinyHelper.executor(Vertx.currentContext())) + .idleTimeout(5, TimeUnit.MINUTES) + .build(); + this.grpcClient = MutinyAppealGrpcApiGrpc.newMutinyStub(channel); + } + ... +} +``` +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Quarkus|00 Quarkus]] +**Родитель**:: +**Источник**:: +**Автор**:: +**Создана**:: [[2024-04-03]] +### Дополнительные материалы +- [[../system-design/gRPC|gRPC]] +### Дочерние заметки + diff --git a/dev/system-design/GraphQL.md b/dev/system-design/GraphQL.md new file mode 100644 index 00000000..4535faf6 --- /dev/null +++ b/dev/system-design/GraphQL.md @@ -0,0 +1,29 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +![[../../meta/files/images/Pasted image 20241103004648.png]] + +- Предоставляет клиентам единую конечную точку для запроса именно тех данных, которые им нужны. +- Клиенты указывают точные поля, требуемые во вложенных запросах, и сервер возвращает оптимизированный ответ, содержащую только эти поля. +- Поддерживает модификации для изменения данных и подписки на уведомления в режиме реального времени. +- Отлично подходит для объединения данных из нескольких источников и хорошо работает с быстро меняющимися требованиями к интерфейсу. +- Однако это переносит сложность на сторону клиента и может допускать некорректные запросы, если они не защищены должным образом. +- Стратегии кэширования могут быть более сложными, чем [[RESTful|REST]]. + + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 System Design|00 System Design]] +**Родитель**:: [[Протоколы коммуникаций|Протоколы коммуникаций]] +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/system-design/Long polling.md b/dev/system-design/Long polling.md new file mode 100644 index 00000000..adff5647 --- /dev/null +++ b/dev/system-design/Long polling.md @@ -0,0 +1,29 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +**Long polling** — это метод опроса сервера, при котором клиент отправляет запрос и остается подключенным к серверу, ожидая ответа до тех пор, пока не появятся новые данные. Если серверу нечего отправить, он удерживает запрос открытым, пока не произойдет обновление, или пока не истечет тайм-аут. После получения ответа клиент сразу отправляет новый запрос для продолжения ожидания. + +**Преимущества:** +- Меньше нагрузка на сервер по сравнению с [[Short polling]], так как запросы отправляются реже, только когда есть новые данные. +- Обеспечивает более оперативное получение обновлений, чем при обычном коротком опросе. + +**Недостатки:** +- Задержка может быть непредсказуемой, особенно если данные появляются нерегулярно. +- Удержание открытого соединения может быть менее эффективным для серверов с ограниченными ресурсами, особенно при большом количестве клиентов. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 System Design|00 System Design]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- [[Short polling]] +- [[Webhook]] + +### Дочерние заметки + + diff --git a/dev/system-design/RESTful.md b/dev/system-design/RESTful.md new file mode 100644 index 00000000..6785c014 --- /dev/null +++ b/dev/system-design/RESTful.md @@ -0,0 +1,29 @@ +--- +aliases: + - REST +tags: + - maturity/🌱 +date: 2024-11-03 +--- +![[../../meta/files/images/Pasted image 20241103004607.png]] + + +- Использует стандартные HTTP-методы, такие как GET, POST, PUT, DELETE, для операций CRUD. +- Хорошо работает, когда вам нужны простые, единообразные интерфейсы между отдельными сервисами / приложениями. +- Стратегии кэширования просты в реализации. +- Недостатком является то, что для сбора связанных данных из отдельных конечных точек может потребоваться несколько обходов. + +![[../../meta/files/images/Pasted image 20241103020635.png]] +*** +## Мета информация +**Область**:: [[../../meta/zero/00 System Design|00 System Design]] +**Родитель**:: [[Протоколы коммуникаций|Протоколы коммуникаций]] +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/system-design/Remote Procedure Call.md b/dev/system-design/Remote Procedure Call.md new file mode 100644 index 00000000..9ca51457 --- /dev/null +++ b/dev/system-design/Remote Procedure Call.md @@ -0,0 +1,27 @@ +--- +aliases: + - RPC +tags: + - maturity/🌱 +date: 2024-11-03 +--- +RPC (удалённый вызов процедур) — это **общая концепция и протокол**, позволяющая программе вызывать функции или методы, которые выполняются на удалённом сервере, так, как будто они выполняются локально. В RPC клиент запрашивает сервер, чтобы тот выполнил определённую функцию и вернул результат. Концепция RPC используется для создания распределённых систем, и её можно реализовать разными способами и технологиями. + +![[../../meta/files/images/Pasted image 20241103005803.png]] + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 System Design|00 System Design]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + +- [[gRPC]] + + diff --git a/dev/system-design/Short polling.md b/dev/system-design/Short polling.md new file mode 100644 index 00000000..ded3d03d --- /dev/null +++ b/dev/system-design/Short polling.md @@ -0,0 +1,33 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +**Short polling** — это метод опроса сервера, при котором клиент периодически отправляет запросы для проверки обновлений или новых данных. В отличие от постоянного соединения, клиент инициирует запросы через заданные интервалы, например, каждую секунду или каждые несколько секунд. + +![[../../meta/files/images/Pasted image 20241103010806.png|600]] + +**Преимущества:** +- Простая реализация, подходит для приложений, где данные обновляются редко. + +**Недостатки:** +- Высокая нагрузка на сервер и сеть из-за частых запросов, даже если данные не изменились. +- Может приводить к задержкам в получении данных, так как обновления видны только при очередном запросе. + + + +*** +## Мета информация +**Область**:: +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- [[Long polling]] +- [[Webhook]] + +### Дочерние заметки + + diff --git a/dev/system-design/Webhook.md b/dev/system-design/Webhook.md new file mode 100644 index 00000000..fd33f09b --- /dev/null +++ b/dev/system-design/Webhook.md @@ -0,0 +1,31 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +**Webhook** — это метод взаимодействия между системами, при котором один сервер автоматически отправляет HTTP-запрос на другой сервер, когда происходит определенное событие. В отличие от [[Long polling|Long polling]] или [[Short polling|Short polling]], клиенту не нужно регулярно проверять наличие обновлений; вместо этого он получает уведомление от сервера в режиме реального времени. + +![[../../meta/files/images/Pasted image 20241103010806.png|600]] + +**Преимущества:** +- Мгновенная доставка данных при возникновении события. +- Снижение нагрузки на сервер, так как нет необходимости в регулярных запросах. + +**Недостатки:** +- Требует настройки безопасности для предотвращения нежелательных вызовов (например, использование токенов или подписи). +- Сложнее тестировать и отлаживать, так как вебхуки зависят от событий, происходящих на сервере. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 System Design|00 System Design]] +**Родитель**:: [[Протоколы коммуникаций]] +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- [[Short polling]] +- [[Long polling]] + +### Дочерние заметки + + diff --git a/dev/system-design/gRPC.md b/dev/system-design/gRPC.md new file mode 100644 index 00000000..e2f316a8 --- /dev/null +++ b/dev/system-design/gRPC.md @@ -0,0 +1,30 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-04-12 +--- +- Подходит для [[../../../../wiki/zero/Микросервисная архитектура|микросервисных архитектур]] для межсервисного общения. + +## Как работает? +![[../../meta/files/images/Pasted image 20241103005832.png]] + +- **Шаг 1**: Клиент отправляет REST-запрос. Тело запроса обычно в формате JSON. +- **Шаги 2 - 4**: Сервис заказов (gRPC-клиент) получает REST-запрос, преобразует запрос в компактный бинарный формат и передает его в транспортный слой +- **Шаг 5**: gRPC отправляет пакеты по сети через HTTP/2. Благодаря бинарному кодированию и сетевым оптимизациям, gRPC считается в 5 раз быстрее, чем JSON. +- **Шаги 6 - 8**: Сервис оплаты (gRPC-сервер) получает пакеты из сети, декодирует их и вызывает серверное приложение. +- **Шаги 9 - 11**: Результат возвращается от серверного приложения, кодируется и передаётся на транспортный уровень. +- **Шаги 12 - 14**: Сервис заказов получает пакеты, декодирует их и отправляет результат в клиентское приложение. +## Проблемы +**Балансировка нагрузки L7 vs L4**: Kubernetes обычно использует балансировку нагрузки на уровне 4 (L4), которая перенаправляет трафик на основе информации IP и порта. Однако gRPC полагается на HTTP/2, что требует балансировки на уровне 7 (L7) для эффективного распределения запросов. Это может потребовать дополнительных настроек или использования специализированных ингресс-контроллеров, поддерживающих HTTP/2. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 System Design|00 System Design]] +**Родитель**:: [[Remote Procedure Call|RPC]], [[Протоколы коммуникаций]] +**Источник**:: +**Автор**:: +**Создана**:: [[2024-04-12]] +### Дополнительные материалы +- +### Дочерние заметки + diff --git a/dev/system-design/Протоколы коммуникаций.md b/dev/system-design/Протоколы коммуникаций.md new file mode 100644 index 00000000..904c3f4b --- /dev/null +++ b/dev/system-design/Протоколы коммуникаций.md @@ -0,0 +1,42 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +![[../../meta/files/images/Pasted image 20241103004117.png]] + +- [[../../../../_inbox/SOAP|SOAP]] + - Основан на XML +- [[RESTful]] + - Популярный, легко реализуемый, методы HTTP + - Идеален для веб-сервисов +- [[GraphQL]] + - Язык запросов, позволяет запрашивать конкретные данные +- [[gRPC|gRPC]] + - Современный, высокопроизводительный, использует Protocol Buffers + - Подходит для микросервисных архитектур для межсервисного общения. +- WebSocket + - В режиме реального времени, двунаправленные, постоянные соединения +- [[Webhook]] + - Событийный, HTTP-обратные вызовы, асинхронный + - Уведомляет системы при наступлении событий +*** +## Мета информация +**Область**:: [[../../meta/zero/00 System Design|00 System Design]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + +- [[RESTful]] +- [[GraphQL]] +- [[gRPC]] +- [[Webhook]] + + diff --git a/dev/Команды Redis-cli.md b/dev/Команды Redis-cli.md new file mode 100644 index 00000000..4837fa00 --- /dev/null +++ b/dev/Команды Redis-cli.md @@ -0,0 +1,39 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +[Commands | Docs](https://redis.io/docs/latest/commands/) + +Положить данные в редис: +```redis +set test hello +``` + +Прочитать +```redis +get test +``` + +Удалить ключ +```redis +del test +``` + +Keys - команда, которая ищет ключи по маске. Используется итератор для поиска, поэтому рекомендуется не использовать, так как сразу оказывает влияние на производительность. + + +*** +## Мета информация +**Область**:: [[../../../wiki/zero/00 Redis|00 Redis]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/Конфигурация Redis.md b/dev/Конфигурация Redis.md new file mode 100644 index 00000000..c848b885 --- /dev/null +++ b/dev/Конфигурация Redis.md @@ -0,0 +1,32 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-03 +--- +- [Redis configuration file example | Docs](https://redis.io/docs/latest/operate/oss_and_stack/management/config-file/) + +- `stop-writes-on-bg-save-error`. Если на snapshot возникает какая-то проблема, то Redis перестает работать. По умолчанию yes. Обычно рекомендуется отключать. Тогда могут возникнуть проблемы с персистентностью, но хотя бы память озу будет работать. +- `rdbcompression`. Немного влияет негативно на производительность, но уменьшает размер хранимых данных. +- `save `. **Триггеры создания снапшотов** [[../../../_inbox/Redis Database Backup|RDB]]: + - save 900 1 — сохранить снапшот, если в течение последних 900 секунд (15 минут) было выполнено хотя бы 1 изменение. + - save 300 10 — сохранить снапшот, если за последние 300 секунд (5 минут) было выполнено 10 изменений. + - save 60 10000 — сохранить снапшот, если за последние 60 секунд (1 минута) было выполнено 10 000 изменений. +- [[../../../_inbox/Append-Only File|appendonly]] +- Можно указать [[algorithm/Алгоритм вытеснения кэша|Алгоритмы вытеснения]] ключей +- `oom-score-adj-values` +- `disable-thp`. Лучше выключить. По умолчанию выключено. + +*** +## Мета информация +**Область**:: [[../../../wiki/zero/00 Redis|00 Redis]] +**Родитель**:: +**Источник**:: +**Создана**:: [[2024-11-03]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/meta/files/images/Pasted image 20240701115612.png b/meta/files/images/Pasted image 20240701115612.png deleted file mode 100644 index 720fce62..00000000 Binary files a/meta/files/images/Pasted image 20240701115612.png and /dev/null differ diff --git a/meta/files/images/Pasted image 20241103004117.png b/meta/files/images/Pasted image 20241103004117.png new file mode 100644 index 00000000..a142b105 Binary files /dev/null and b/meta/files/images/Pasted image 20241103004117.png differ diff --git a/meta/files/images/Pasted image 20241103004607.png b/meta/files/images/Pasted image 20241103004607.png new file mode 100644 index 00000000..cfad3357 Binary files /dev/null and b/meta/files/images/Pasted image 20241103004607.png differ diff --git a/meta/files/images/Pasted image 20241103004648.png b/meta/files/images/Pasted image 20241103004648.png new file mode 100644 index 00000000..ba9ac2e5 Binary files /dev/null and b/meta/files/images/Pasted image 20241103004648.png differ diff --git a/meta/files/images/Pasted image 20241103005803.png b/meta/files/images/Pasted image 20241103005803.png new file mode 100644 index 00000000..9af90cda Binary files /dev/null and b/meta/files/images/Pasted image 20241103005803.png differ diff --git a/meta/files/images/Pasted image 20241103005832.png b/meta/files/images/Pasted image 20241103005832.png new file mode 100644 index 00000000..083f31d9 Binary files /dev/null and b/meta/files/images/Pasted image 20241103005832.png differ diff --git a/meta/files/images/Pasted image 20241103010806.png b/meta/files/images/Pasted image 20241103010806.png new file mode 100644 index 00000000..db1cb6a1 Binary files /dev/null and b/meta/files/images/Pasted image 20241103010806.png differ diff --git a/meta/files/images/Pasted image 20241103014445.png b/meta/files/images/Pasted image 20241103014445.png new file mode 100644 index 00000000..e2c3cbf1 Binary files /dev/null and b/meta/files/images/Pasted image 20241103014445.png differ diff --git a/meta/files/images/Pasted image 20241103020227.png b/meta/files/images/Pasted image 20241103020227.png new file mode 100644 index 00000000..418cf732 Binary files /dev/null and b/meta/files/images/Pasted image 20241103020227.png differ diff --git a/meta/files/images/Pasted image 20241103020635.png b/meta/files/images/Pasted image 20241103020635.png new file mode 100644 index 00000000..019851e9 Binary files /dev/null and b/meta/files/images/Pasted image 20241103020635.png differ diff --git a/meta/files/images/Pasted image 20241103020737.png b/meta/files/images/Pasted image 20241103020737.png new file mode 100644 index 00000000..3d57a1b2 Binary files /dev/null and b/meta/files/images/Pasted image 20241103020737.png differ diff --git a/meta/files/images/Pasted image 20241103021050.png b/meta/files/images/Pasted image 20241103021050.png new file mode 100644 index 00000000..444f5610 Binary files /dev/null and b/meta/files/images/Pasted image 20241103021050.png differ diff --git a/meta/files/images/Pasted image 20241103021719.png b/meta/files/images/Pasted image 20241103021719.png new file mode 100644 index 00000000..73c9577d Binary files /dev/null and b/meta/files/images/Pasted image 20241103021719.png differ diff --git a/meta/files/images/Pasted image 20241103021925.png b/meta/files/images/Pasted image 20241103021925.png new file mode 100644 index 00000000..7f8cadb2 Binary files /dev/null and b/meta/files/images/Pasted image 20241103021925.png differ diff --git a/meta/files/images/Pasted image 20241103022447.png b/meta/files/images/Pasted image 20241103022447.png new file mode 100644 index 00000000..92d1c972 Binary files /dev/null and b/meta/files/images/Pasted image 20241103022447.png differ diff --git a/meta/files/images/Pasted image 20241103022605.png b/meta/files/images/Pasted image 20241103022605.png new file mode 100644 index 00000000..dfe656e1 Binary files /dev/null and b/meta/files/images/Pasted image 20241103022605.png differ diff --git a/meta/files/images/Pasted image 20241103032953.png b/meta/files/images/Pasted image 20241103032953.png new file mode 100644 index 00000000..0180ed7b Binary files /dev/null and b/meta/files/images/Pasted image 20241103032953.png differ diff --git a/meta/files/images/Pasted image 20241103033345.png b/meta/files/images/Pasted image 20241103033345.png new file mode 100644 index 00000000..9d07186c Binary files /dev/null and b/meta/files/images/Pasted image 20241103033345.png differ diff --git a/meta/files/images/Pasted image 20241103033544.png b/meta/files/images/Pasted image 20241103033544.png new file mode 100644 index 00000000..1e7fe5b7 Binary files /dev/null and b/meta/files/images/Pasted image 20241103033544.png differ diff --git a/meta/files/images/Pasted image 20241103034136.png b/meta/files/images/Pasted image 20241103034136.png new file mode 100644 index 00000000..78f6c053 Binary files /dev/null and b/meta/files/images/Pasted image 20241103034136.png differ diff --git a/meta/files/images/Pasted image 20241103035011.png b/meta/files/images/Pasted image 20241103035011.png new file mode 100644 index 00000000..fdf36bb3 Binary files /dev/null and b/meta/files/images/Pasted image 20241103035011.png differ diff --git a/meta/files/images/Pasted image 20241103035418.png b/meta/files/images/Pasted image 20241103035418.png new file mode 100644 index 00000000..492b48a6 Binary files /dev/null and b/meta/files/images/Pasted image 20241103035418.png differ diff --git a/meta/files/images/Pasted image 20241103035804.png b/meta/files/images/Pasted image 20241103035804.png new file mode 100644 index 00000000..d1c682fa Binary files /dev/null and b/meta/files/images/Pasted image 20241103035804.png differ diff --git a/meta/files/images/comp/Pasted image 20241103004117.png b/meta/files/images/comp/Pasted image 20241103004117.png new file mode 100644 index 00000000..d875414f Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103004117.png differ diff --git a/meta/files/images/comp/Pasted image 20241103004117.png.md5 b/meta/files/images/comp/Pasted image 20241103004117.png.md5 new file mode 100644 index 00000000..38c6614d --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103004117.png.md5 @@ -0,0 +1 @@ +f0f6cbe3b8f709babd75b3ba6e77d85f diff --git a/meta/files/images/comp/Pasted image 20241103004607.png b/meta/files/images/comp/Pasted image 20241103004607.png new file mode 100644 index 00000000..fced8b61 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103004607.png differ diff --git a/meta/files/images/comp/Pasted image 20241103004607.png.md5 b/meta/files/images/comp/Pasted image 20241103004607.png.md5 new file mode 100644 index 00000000..e0cf0994 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103004607.png.md5 @@ -0,0 +1 @@ +9f15418682d0d4ec4c8b8e1a31ad90db diff --git a/meta/files/images/comp/Pasted image 20241103004648.png b/meta/files/images/comp/Pasted image 20241103004648.png new file mode 100644 index 00000000..1cdcf624 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103004648.png differ diff --git a/meta/files/images/comp/Pasted image 20241103004648.png.md5 b/meta/files/images/comp/Pasted image 20241103004648.png.md5 new file mode 100644 index 00000000..686dd165 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103004648.png.md5 @@ -0,0 +1 @@ +2b0e498563bfc68f771c1fde6f933483 diff --git a/meta/files/images/comp/Pasted image 20241103005803.png b/meta/files/images/comp/Pasted image 20241103005803.png new file mode 100644 index 00000000..59553025 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103005803.png differ diff --git a/meta/files/images/comp/Pasted image 20241103005803.png.md5 b/meta/files/images/comp/Pasted image 20241103005803.png.md5 new file mode 100644 index 00000000..967e8857 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103005803.png.md5 @@ -0,0 +1 @@ +dacf4ed39756d973bb0ebc581334b772 diff --git a/meta/files/images/comp/Pasted image 20241103005832.png b/meta/files/images/comp/Pasted image 20241103005832.png new file mode 100644 index 00000000..ded69305 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103005832.png differ diff --git a/meta/files/images/comp/Pasted image 20241103005832.png.md5 b/meta/files/images/comp/Pasted image 20241103005832.png.md5 new file mode 100644 index 00000000..5cca9ad5 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103005832.png.md5 @@ -0,0 +1 @@ +2ba70e473c0e94a3effb8fed01b98596 diff --git a/meta/files/images/comp/Pasted image 20241103010806.png b/meta/files/images/comp/Pasted image 20241103010806.png new file mode 100644 index 00000000..154a9277 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103010806.png differ diff --git a/meta/files/images/comp/Pasted image 20241103010806.png.md5 b/meta/files/images/comp/Pasted image 20241103010806.png.md5 new file mode 100644 index 00000000..fbd2009d --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103010806.png.md5 @@ -0,0 +1 @@ +7cf49819565b0d088320d13f63725a7b diff --git a/meta/files/images/comp/Pasted image 20241103014445.png b/meta/files/images/comp/Pasted image 20241103014445.png new file mode 100644 index 00000000..da367686 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103014445.png differ diff --git a/meta/files/images/comp/Pasted image 20241103014445.png.md5 b/meta/files/images/comp/Pasted image 20241103014445.png.md5 new file mode 100644 index 00000000..200d7b24 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103014445.png.md5 @@ -0,0 +1 @@ +17fd1ca4a019007eec870ec48503a054 diff --git a/meta/files/images/comp/Pasted image 20241103020227.png b/meta/files/images/comp/Pasted image 20241103020227.png new file mode 100644 index 00000000..ebbb747b Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103020227.png differ diff --git a/meta/files/images/comp/Pasted image 20241103020227.png.md5 b/meta/files/images/comp/Pasted image 20241103020227.png.md5 new file mode 100644 index 00000000..e8a7b266 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103020227.png.md5 @@ -0,0 +1 @@ +490ce653ca2f724f1ac32b52f988ae7d diff --git a/meta/files/images/comp/Pasted image 20241103020635.png b/meta/files/images/comp/Pasted image 20241103020635.png new file mode 100644 index 00000000..404ba1ab Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103020635.png differ diff --git a/meta/files/images/comp/Pasted image 20241103020635.png.md5 b/meta/files/images/comp/Pasted image 20241103020635.png.md5 new file mode 100644 index 00000000..3dd751cf --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103020635.png.md5 @@ -0,0 +1 @@ +ddef181237494255f3495d823536c250 diff --git a/meta/files/images/comp/Pasted image 20241103020737.png b/meta/files/images/comp/Pasted image 20241103020737.png new file mode 100644 index 00000000..7c7c1f8e Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103020737.png differ diff --git a/meta/files/images/comp/Pasted image 20241103020737.png.md5 b/meta/files/images/comp/Pasted image 20241103020737.png.md5 new file mode 100644 index 00000000..d51b9aab --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103020737.png.md5 @@ -0,0 +1 @@ +6fc9b4d7600da35cf0228e00df19ec91 diff --git a/meta/files/images/comp/Pasted image 20241103021050.png b/meta/files/images/comp/Pasted image 20241103021050.png new file mode 100644 index 00000000..47288c93 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103021050.png differ diff --git a/meta/files/images/comp/Pasted image 20241103021050.png.md5 b/meta/files/images/comp/Pasted image 20241103021050.png.md5 new file mode 100644 index 00000000..fdd353c7 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103021050.png.md5 @@ -0,0 +1 @@ +5774711ed76b912999015e8606b37a43 diff --git a/meta/files/images/comp/Pasted image 20241103021719.png b/meta/files/images/comp/Pasted image 20241103021719.png new file mode 100644 index 00000000..61b8376b Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103021719.png differ diff --git a/meta/files/images/comp/Pasted image 20241103021719.png.md5 b/meta/files/images/comp/Pasted image 20241103021719.png.md5 new file mode 100644 index 00000000..c680e89e --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103021719.png.md5 @@ -0,0 +1 @@ +9ee7723896482ce9836ed0ec136dee50 diff --git a/meta/files/images/comp/Pasted image 20241103021925.png b/meta/files/images/comp/Pasted image 20241103021925.png new file mode 100644 index 00000000..059331be Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103021925.png differ diff --git a/meta/files/images/comp/Pasted image 20241103021925.png.md5 b/meta/files/images/comp/Pasted image 20241103021925.png.md5 new file mode 100644 index 00000000..e9a9bf06 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103021925.png.md5 @@ -0,0 +1 @@ +c1179cf5d896ca0df0c577398b8ba56e diff --git a/meta/files/images/comp/Pasted image 20241103022447.png b/meta/files/images/comp/Pasted image 20241103022447.png new file mode 100644 index 00000000..77476c0c Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103022447.png differ diff --git a/meta/files/images/comp/Pasted image 20241103022447.png.md5 b/meta/files/images/comp/Pasted image 20241103022447.png.md5 new file mode 100644 index 00000000..9fc33df9 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103022447.png.md5 @@ -0,0 +1 @@ +7d38aa5b4f6e4c4b429d674dfd73cc8a diff --git a/meta/files/images/comp/Pasted image 20241103022605.png b/meta/files/images/comp/Pasted image 20241103022605.png new file mode 100644 index 00000000..72df4b97 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103022605.png differ diff --git a/meta/files/images/comp/Pasted image 20241103022605.png.md5 b/meta/files/images/comp/Pasted image 20241103022605.png.md5 new file mode 100644 index 00000000..ec8205b5 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103022605.png.md5 @@ -0,0 +1 @@ +628bb9f12b3a5d04e3d0d7772b3884a6 diff --git a/meta/files/images/comp/Pasted image 20241103032953.png b/meta/files/images/comp/Pasted image 20241103032953.png new file mode 100644 index 00000000..3921b1ae Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103032953.png differ diff --git a/meta/files/images/comp/Pasted image 20241103032953.png.md5 b/meta/files/images/comp/Pasted image 20241103032953.png.md5 new file mode 100644 index 00000000..2c372319 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103032953.png.md5 @@ -0,0 +1 @@ +5c579fe1aa8254db723d6add4c9cd45e diff --git a/meta/files/images/comp/Pasted image 20241103033345.png b/meta/files/images/comp/Pasted image 20241103033345.png new file mode 100644 index 00000000..c7256add Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103033345.png differ diff --git a/meta/files/images/comp/Pasted image 20241103033345.png.md5 b/meta/files/images/comp/Pasted image 20241103033345.png.md5 new file mode 100644 index 00000000..19de08e6 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103033345.png.md5 @@ -0,0 +1 @@ +49a8abac5981ad9429ad75992d32725e diff --git a/meta/files/images/comp/Pasted image 20241103033544.png b/meta/files/images/comp/Pasted image 20241103033544.png new file mode 100644 index 00000000..c7a896bf Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103033544.png differ diff --git a/meta/files/images/comp/Pasted image 20241103033544.png.md5 b/meta/files/images/comp/Pasted image 20241103033544.png.md5 new file mode 100644 index 00000000..c93663a2 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103033544.png.md5 @@ -0,0 +1 @@ +2b47d98d5d230a80798f967a4ca86ed1 diff --git a/meta/files/images/comp/Pasted image 20241103034136.png b/meta/files/images/comp/Pasted image 20241103034136.png new file mode 100644 index 00000000..eec60c5c Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103034136.png differ diff --git a/meta/files/images/comp/Pasted image 20241103034136.png.md5 b/meta/files/images/comp/Pasted image 20241103034136.png.md5 new file mode 100644 index 00000000..5401551f --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103034136.png.md5 @@ -0,0 +1 @@ +ecc48a35ac34b7be35071c8575ea3fe0 diff --git a/meta/files/images/comp/Pasted image 20241103035011.png b/meta/files/images/comp/Pasted image 20241103035011.png new file mode 100644 index 00000000..0f616d36 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103035011.png differ diff --git a/meta/files/images/comp/Pasted image 20241103035011.png.md5 b/meta/files/images/comp/Pasted image 20241103035011.png.md5 new file mode 100644 index 00000000..b29b4d64 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103035011.png.md5 @@ -0,0 +1 @@ +d4619aeb0d0fdf329e7e0c3a5a54de19 diff --git a/meta/files/images/comp/Pasted image 20241103035418.png b/meta/files/images/comp/Pasted image 20241103035418.png new file mode 100644 index 00000000..1bec63d3 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103035418.png differ diff --git a/meta/files/images/comp/Pasted image 20241103035418.png.md5 b/meta/files/images/comp/Pasted image 20241103035418.png.md5 new file mode 100644 index 00000000..26f2e0a9 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103035418.png.md5 @@ -0,0 +1 @@ +18f4cfc5915a6d3646d32eb88619d375 diff --git a/meta/files/images/comp/Pasted image 20241103035804.png b/meta/files/images/comp/Pasted image 20241103035804.png new file mode 100644 index 00000000..c5263c28 Binary files /dev/null and b/meta/files/images/comp/Pasted image 20241103035804.png differ diff --git a/meta/files/images/comp/Pasted image 20241103035804.png.md5 b/meta/files/images/comp/Pasted image 20241103035804.png.md5 new file mode 100644 index 00000000..d64bdd29 --- /dev/null +++ b/meta/files/images/comp/Pasted image 20241103035804.png.md5 @@ -0,0 +1 @@ +58181b293155e28c8751ef2a41026fdb diff --git a/meta/files/images/photo_2024-10-29 18.27.09.jpeg b/meta/files/images/photo_2024-10-29 18.27.09.jpeg new file mode 100644 index 00000000..492d28dd Binary files /dev/null and b/meta/files/images/photo_2024-10-29 18.27.09.jpeg differ diff --git a/meta/files/images/webp/Pasted image 20241103004117.webp b/meta/files/images/webp/Pasted image 20241103004117.webp new file mode 100644 index 00000000..0d0d376c Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103004117.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103004117.webp.md5 b/meta/files/images/webp/Pasted image 20241103004117.webp.md5 new file mode 100644 index 00000000..38c6614d --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103004117.webp.md5 @@ -0,0 +1 @@ +f0f6cbe3b8f709babd75b3ba6e77d85f diff --git a/meta/files/images/webp/Pasted image 20241103004607.webp b/meta/files/images/webp/Pasted image 20241103004607.webp new file mode 100644 index 00000000..66ed2046 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103004607.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103004607.webp.md5 b/meta/files/images/webp/Pasted image 20241103004607.webp.md5 new file mode 100644 index 00000000..e0cf0994 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103004607.webp.md5 @@ -0,0 +1 @@ +9f15418682d0d4ec4c8b8e1a31ad90db diff --git a/meta/files/images/webp/Pasted image 20241103004648.webp b/meta/files/images/webp/Pasted image 20241103004648.webp new file mode 100644 index 00000000..84177999 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103004648.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103004648.webp.md5 b/meta/files/images/webp/Pasted image 20241103004648.webp.md5 new file mode 100644 index 00000000..686dd165 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103004648.webp.md5 @@ -0,0 +1 @@ +2b0e498563bfc68f771c1fde6f933483 diff --git a/meta/files/images/webp/Pasted image 20241103005803.webp b/meta/files/images/webp/Pasted image 20241103005803.webp new file mode 100644 index 00000000..49e5226e Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103005803.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103005803.webp.md5 b/meta/files/images/webp/Pasted image 20241103005803.webp.md5 new file mode 100644 index 00000000..967e8857 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103005803.webp.md5 @@ -0,0 +1 @@ +dacf4ed39756d973bb0ebc581334b772 diff --git a/meta/files/images/webp/Pasted image 20241103005832.webp b/meta/files/images/webp/Pasted image 20241103005832.webp new file mode 100644 index 00000000..aae66dd1 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103005832.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103005832.webp.md5 b/meta/files/images/webp/Pasted image 20241103005832.webp.md5 new file mode 100644 index 00000000..5cca9ad5 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103005832.webp.md5 @@ -0,0 +1 @@ +2ba70e473c0e94a3effb8fed01b98596 diff --git a/meta/files/images/webp/Pasted image 20241103010806.webp b/meta/files/images/webp/Pasted image 20241103010806.webp new file mode 100644 index 00000000..6837fef7 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103010806.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103010806.webp.md5 b/meta/files/images/webp/Pasted image 20241103010806.webp.md5 new file mode 100644 index 00000000..fbd2009d --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103010806.webp.md5 @@ -0,0 +1 @@ +7cf49819565b0d088320d13f63725a7b diff --git a/meta/files/images/webp/Pasted image 20241103014445.webp b/meta/files/images/webp/Pasted image 20241103014445.webp new file mode 100644 index 00000000..248a126a Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103014445.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103014445.webp.md5 b/meta/files/images/webp/Pasted image 20241103014445.webp.md5 new file mode 100644 index 00000000..200d7b24 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103014445.webp.md5 @@ -0,0 +1 @@ +17fd1ca4a019007eec870ec48503a054 diff --git a/meta/files/images/webp/Pasted image 20241103020227.webp b/meta/files/images/webp/Pasted image 20241103020227.webp new file mode 100644 index 00000000..f5731de8 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103020227.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103020227.webp.md5 b/meta/files/images/webp/Pasted image 20241103020227.webp.md5 new file mode 100644 index 00000000..e8a7b266 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103020227.webp.md5 @@ -0,0 +1 @@ +490ce653ca2f724f1ac32b52f988ae7d diff --git a/meta/files/images/webp/Pasted image 20241103020635.webp b/meta/files/images/webp/Pasted image 20241103020635.webp new file mode 100644 index 00000000..0c5bd279 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103020635.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103020635.webp.md5 b/meta/files/images/webp/Pasted image 20241103020635.webp.md5 new file mode 100644 index 00000000..3dd751cf --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103020635.webp.md5 @@ -0,0 +1 @@ +ddef181237494255f3495d823536c250 diff --git a/meta/files/images/webp/Pasted image 20241103020737.webp b/meta/files/images/webp/Pasted image 20241103020737.webp new file mode 100644 index 00000000..610b4ae9 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103020737.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103020737.webp.md5 b/meta/files/images/webp/Pasted image 20241103020737.webp.md5 new file mode 100644 index 00000000..d51b9aab --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103020737.webp.md5 @@ -0,0 +1 @@ +6fc9b4d7600da35cf0228e00df19ec91 diff --git a/meta/files/images/webp/Pasted image 20241103021050.webp b/meta/files/images/webp/Pasted image 20241103021050.webp new file mode 100644 index 00000000..51850d42 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103021050.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103021050.webp.md5 b/meta/files/images/webp/Pasted image 20241103021050.webp.md5 new file mode 100644 index 00000000..fdd353c7 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103021050.webp.md5 @@ -0,0 +1 @@ +5774711ed76b912999015e8606b37a43 diff --git a/meta/files/images/webp/Pasted image 20241103021719.webp b/meta/files/images/webp/Pasted image 20241103021719.webp new file mode 100644 index 00000000..541339b5 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103021719.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103021719.webp.md5 b/meta/files/images/webp/Pasted image 20241103021719.webp.md5 new file mode 100644 index 00000000..c680e89e --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103021719.webp.md5 @@ -0,0 +1 @@ +9ee7723896482ce9836ed0ec136dee50 diff --git a/meta/files/images/webp/Pasted image 20241103021925.webp b/meta/files/images/webp/Pasted image 20241103021925.webp new file mode 100644 index 00000000..d51a4ec2 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103021925.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103021925.webp.md5 b/meta/files/images/webp/Pasted image 20241103021925.webp.md5 new file mode 100644 index 00000000..e9a9bf06 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103021925.webp.md5 @@ -0,0 +1 @@ +c1179cf5d896ca0df0c577398b8ba56e diff --git a/meta/files/images/webp/Pasted image 20241103022447.webp b/meta/files/images/webp/Pasted image 20241103022447.webp new file mode 100644 index 00000000..ee94b85c Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103022447.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103022447.webp.md5 b/meta/files/images/webp/Pasted image 20241103022447.webp.md5 new file mode 100644 index 00000000..9fc33df9 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103022447.webp.md5 @@ -0,0 +1 @@ +7d38aa5b4f6e4c4b429d674dfd73cc8a diff --git a/meta/files/images/webp/Pasted image 20241103022605.webp b/meta/files/images/webp/Pasted image 20241103022605.webp new file mode 100644 index 00000000..8bc7541e Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103022605.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103022605.webp.md5 b/meta/files/images/webp/Pasted image 20241103022605.webp.md5 new file mode 100644 index 00000000..ec8205b5 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103022605.webp.md5 @@ -0,0 +1 @@ +628bb9f12b3a5d04e3d0d7772b3884a6 diff --git a/meta/files/images/webp/Pasted image 20241103032953.webp b/meta/files/images/webp/Pasted image 20241103032953.webp new file mode 100644 index 00000000..5deace00 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103032953.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103032953.webp.md5 b/meta/files/images/webp/Pasted image 20241103032953.webp.md5 new file mode 100644 index 00000000..2c372319 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103032953.webp.md5 @@ -0,0 +1 @@ +5c579fe1aa8254db723d6add4c9cd45e diff --git a/meta/files/images/webp/Pasted image 20241103033345.webp b/meta/files/images/webp/Pasted image 20241103033345.webp new file mode 100644 index 00000000..4829ebb9 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103033345.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103033345.webp.md5 b/meta/files/images/webp/Pasted image 20241103033345.webp.md5 new file mode 100644 index 00000000..19de08e6 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103033345.webp.md5 @@ -0,0 +1 @@ +49a8abac5981ad9429ad75992d32725e diff --git a/meta/files/images/webp/Pasted image 20241103033544.webp b/meta/files/images/webp/Pasted image 20241103033544.webp new file mode 100644 index 00000000..921edb12 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103033544.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103033544.webp.md5 b/meta/files/images/webp/Pasted image 20241103033544.webp.md5 new file mode 100644 index 00000000..c93663a2 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103033544.webp.md5 @@ -0,0 +1 @@ +2b47d98d5d230a80798f967a4ca86ed1 diff --git a/meta/files/images/webp/Pasted image 20241103034136.webp b/meta/files/images/webp/Pasted image 20241103034136.webp new file mode 100644 index 00000000..49ff99b4 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103034136.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103034136.webp.md5 b/meta/files/images/webp/Pasted image 20241103034136.webp.md5 new file mode 100644 index 00000000..5401551f --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103034136.webp.md5 @@ -0,0 +1 @@ +ecc48a35ac34b7be35071c8575ea3fe0 diff --git a/meta/files/images/webp/Pasted image 20241103035011.webp b/meta/files/images/webp/Pasted image 20241103035011.webp new file mode 100644 index 00000000..3f88eab9 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103035011.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103035011.webp.md5 b/meta/files/images/webp/Pasted image 20241103035011.webp.md5 new file mode 100644 index 00000000..b29b4d64 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103035011.webp.md5 @@ -0,0 +1 @@ +d4619aeb0d0fdf329e7e0c3a5a54de19 diff --git a/meta/files/images/webp/Pasted image 20241103035418.webp b/meta/files/images/webp/Pasted image 20241103035418.webp new file mode 100644 index 00000000..5c214a78 Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103035418.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103035418.webp.md5 b/meta/files/images/webp/Pasted image 20241103035418.webp.md5 new file mode 100644 index 00000000..26f2e0a9 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103035418.webp.md5 @@ -0,0 +1 @@ +18f4cfc5915a6d3646d32eb88619d375 diff --git a/meta/files/images/webp/Pasted image 20241103035804.webp b/meta/files/images/webp/Pasted image 20241103035804.webp new file mode 100644 index 00000000..5048e76f Binary files /dev/null and b/meta/files/images/webp/Pasted image 20241103035804.webp differ diff --git a/meta/files/images/webp/Pasted image 20241103035804.webp.md5 b/meta/files/images/webp/Pasted image 20241103035804.webp.md5 new file mode 100644 index 00000000..d64bdd29 --- /dev/null +++ b/meta/files/images/webp/Pasted image 20241103035804.webp.md5 @@ -0,0 +1 @@ +58181b293155e28c8751ef2a41026fdb diff --git a/meta/files/images/webp/photo_2024-10-29 18.27.09.webp.md5 b/meta/files/images/webp/photo_2024-10-29 18.27.09.webp.md5 new file mode 100644 index 00000000..40b814ad --- /dev/null +++ b/meta/files/images/webp/photo_2024-10-29 18.27.09.webp.md5 @@ -0,0 +1 @@ +634ba99cf883e2d88fabe964a7c25dea diff --git a/meta/zero/00 Docker.md b/meta/zero/00 Docker.md index 6f81dd7b..ddf800fb 100644 --- a/meta/zero/00 Docker.md +++ b/meta/zero/00 Docker.md @@ -18,6 +18,13 @@ title: Docker - [Структура хранилища файлов Docker](Структура%20хранилища%20файлов%20Docker.md) - [Очистка мусора в Docker](Очистка%20мусора%20в%20Docker.md) - [Настройка ротации логов в Docker](Настройка%20ротации%20логов%20в%20Docker.md) + +![[../files/images/Pasted image 20241103035418.png]] + +В архитектуре Docker выделяют 3 основных компонента: +- **Docker client**: Клиент Docker взаимодействует с демоном Docker. +- **Docker host**: Демон Docker принимает запросы к Docker API и управляет объектами Docker, такими как образы, контейнеры, сети и тома. +- **Docker registry**: Регистры Docker хранят образы Docker. Docker Hub — это публичный регистр, доступный для всех. ## Полезное - Утилита для анализа докер образов: [Утилита Dive](../../dev/devops/docker/Утилита%20Dive.md) - Утилита [Hadolint](https://github.com/hadolint/hadolint). Проверяет докер файл на плохие практики. diff --git a/meta/zero/00 System Design.md b/meta/zero/00 System Design.md new file mode 100644 index 00000000..c9df11e7 --- /dev/null +++ b/meta/zero/00 System Design.md @@ -0,0 +1,8 @@ +--- +aliases: + - System Design +tags: + - type/zero-link +title: System Design +--- +- [[../../dev/system-design/Протоколы коммуникаций|Протоколы коммуникаций]] \ No newline at end of file diff --git a/meta/zero/00 Сон.md b/meta/zero/00 Сон.md deleted file mode 100644 index c451d198..00000000 --- a/meta/zero/00 Сон.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -tags: - - type/zero-link -aliases: - - сон - - сна - - сне - - сном - - спать -zero-link: - - "[[00 Здоровье|00 Здоровье]]" ---- -- [Качественный сон](Качественный%20сон.md) - - [Как наладить сон?](Как%20наладить%20сон?.md) -- [[../../../../knowledge/health/болезни/Расстройства сна|Расстройства сна]] -- [Как не заснуть?](Как%20не%20заснуть?.md) -- [Сновидения](Сновидения.md) -- [Утреннее пробуждение](knowledge/health/сон/Утреннее%20пробуждение.md) - -Главные компоненты отвечающие за сон: -- [Мелатонин](knowledge/human/гормоны/Мелатонин.md) - гормон "темноты и сна". Вырабатывает [Шишковидная железа](knowledge/human/строение/Шишковидная%20железа.md) -- [Циркадные ритмы](knowledge/human/Циркадные%20ритмы.md) - наши внутренние биологические часы -- [Супрахиазматическое ядро](Супрахиазматическое%20ядро.md) - следит за временем, ориентируясь на свет -- Нейромедиаторы и гормоны: [Кортизол](Кортизол.md), [Адреналин](Адреналин.md), [Норадреналин](Норадреналин.md), [Аденозин](Аденозин.md) -- [Фазы сна](Фазы%20сна.md): [Поверхностный сон](_inbox/Поверхностный%20сон.md), [Глубокая фаза сна](Глубокая%20фаза%20сна.md), [REM](Фаза%20быстрого%20сна.md) -## Зачем нужен сон? -**Сон играет роль уборщика**, [удаляя](https://www.sciencedirect.com/science/article/abs/pii/S2468867319301609#:~:text=The%20discovery%20that,dependence%20on%20glia.) из мозга продукты метаболизма — ненужные белки, которые накапливаются во время бодрствования и приводят к заболеваниям нервной системы. Среди таких белков — бета-амилоид, большая концентрация которого приводит к [гибели](https://med.stanford.edu/news/all-news/2013/09/scientists-reveal-how-beta-amyloid-may-cause-alzheimers.html#:~:text=Scientists%20at%20the%20Stanford%20University%20School%20of%20Medicine%20have%20shown%20how%20a%20protein%20fragment%20known%20as%20beta%2Damyloid%2C%20strongly%20implicated%20in%20Alzheimer%E2%80%99s%20disease%2C%20begins%20destroying%20synapses%20before%20it%20clumps%20into%20plaques%20that%20lead%20to%20nerve%20cell%20death.) нервных клеток и, [вероятно](https://www.medicalnewstoday.com/articles/325493#:~:text=If%20the%20cellular%20system%20became%20overloaded%20or%20slowed%20down%20as%20we%20aged%2C%20metabolic%20garbage%20would%20build%20up%20between%20the%20cells.%20This%20garbage%20includes%20products%20such%20as%20beta%2Damyloid%20%E2%80%94%20the%20protein%20associated%20with%20Alzheimer%E2%80%99s%20disease.), к [[../../../../knowledge/health/болезни/Болезнь Альцгеймера|болезни Альцгеймера]]. Всего одна бессонная ночь значительно [повышает](https://www.pnas.org/doi/10.1073/pnas.1721694115#:~:text=We%20show%20that%20one%20night%20of%20sleep%20deprivation%2C%20relative%20to%20baseline%2C%20resulted%20in%20a%20significant%20increase%20in%20A%CE%B2%20burden%20in%20the%20right%20hippocampus%20and%20thalamus.) объем этого белка в мозге человека. - -**Сон важен для физического самочувствия.** Пока мы спим, [усиливается](https://erj.ersjournals.com/content/38/4/870#:~:text=The%20release%20of%20GH%20is%20greatly%20enhanced%20during%20sleep%2C%20especially%20early%20in%20the%20night) выработка [«гормона роста»](https://ru.wikipedia.org/wiki/%D0%93%D0%BE%D1%80%D0%BC%D0%BE%D0%BD_%D1%80%D0%BE%D1%81%D1%82%D0%B0), который [восстанавливает](https://www.healthline.com/health/hgh-side-effects#:~:text=HGH%20helps%20to%20maintain%2C%20build%2C%20and%20repair%20healthy%20tissue%20in%20the%20brain%20and%20other%20organs.%20This%20hormone%20can%20help%20to%20speed%20up%20healing%20after%20an%20injury%20and%20repair%20muscle%20tissue%20after%20exercise.%20This%20helps%20to%20build%20muscle%20mass%2C%20boost%20metabolism%2C%20and%20burn%20fat.) мышцы после нагрузок и травм. Нехватка этого гормона [приводит](https://academic.oup.com/jcem/article/83/2/382/2865179?login=false#:~:text=1.%20Lean%20Body%20Mass%20(LBM).%20Reduced%20LBM%20is%20an%20important%20feature%20of%20AO%20GH%20deficiency.%20Initial%20studies%20demonstrated%20a%20mean%20reduction%20in%20LBM%20of%207%E2%80%938%25%2C%20corresponding%20to%20approximately%204%20kg%20lean%20tissue%20(6).%20Subsequent%20studies%20have%20confirmed%20these%20results%20(12%2C%2014%E2%80%9316).) к тому, что мышцы атрофируются. Также сон помогает нормализовать артериальное давление. - -**Сон нужен иммунной системе.** Во сне наше дыхание замедляется, а мышцы почти неподвижны, поэтому энергия в организме может [пойти](https://www.sleepfoundation.org/physical-health/how-sleep-affects-immunity#:~:text=During%20sleep%2C%20breathing%20and%20muscle%20activity%20slows%20down%2C%20freeing%20up%20energy%20for%20the%20immune%20system%20to%20perform%20these%20critical%20tasks.) на важные иммунные задачи. Например, [активируются](https://www.sleepfoundation.org/physical-health/how-sleep-affects-immunity#:~:text=Sleep%20is%20an,off%20an%20infection.) воспалительные процессы, помогающие заживлять раны и бороться с инфекциями. [[../../../../knowledge/health/болезни/Недосып|Недосып]] же имеет обратный эффект: те, кто спят меньше семи часов, [простужаются](https://pubmed.ncbi.nlm.nih.gov/19139325/#:~:text=There%20was%20a%20graded%20association%20with%20average%20sleep%20duration%3A%20participants%20with%20less%20than%207%20hours%20of%20sleep%20were%202.94%20times%20(95%25%20confidence%20interval%20%5BCI%5D%2C%201.18%2D7.30)%20more%20likely%20to%20develop%20a%20cold%20than%20those%20with%208%20hours%20or%20more%20of%20sleep.) почти в три раза чаще, чем спящие по восемь часов. - -**Сон [формирует](https://www.pnas.org/doi/10.1073/pnas.2201795119) и закрепляет воспоминания**. Этот процесс называется [консолидация памяти](Консолидация%20памяти.md). Это подтверждается экспериментами: одна группа людей училась утром, а другая вечером. Контрольный тест показал, что чем ближе обучение ко сну, тем лучше усваивается информация. - -Еще во сне мы [продолжаем](https://now.tufts.edu/2021/02/18/new-theory-why-we-dream#:~:text=In%20essence%2C%20that%E2%80%99s,need%20of%20disruption.) искать решение проблем, которые волновали нас днем. -## Как возникает сон -![](Циркадные%20ритмы.md#^a1a364) -![](Мелатонин.md#^381eb3) -![](Шишковидная%20железа.md#^31ebf3) - -- [Фазы сна](Фазы%20сна.md) -## Что влияет на сон -- [Стресс](Стресс.md) -- Хронические заболевания -- Кофеин -- Возраст -- Принимаемые препараты -- [[../../../../knowledge/health/Физическая нагрузка|Физическая нагрузка]]. -## Заметки -- В одном эксперементе добровольцы спали не больше шести часов. Итог - время реакции на внешние факторы увеличилось в 2 раза, внимательность ухудшилась в 5 раз. - -## Дополнительные материалы -- [[../../../../_inbox/Сказки для сна|Сказки для сна]] \ No newline at end of file diff --git a/source/lecture/Доклад. Могут ли Virtual threads заменить Webflux.md b/source/lecture/Доклад. Могут ли Virtual threads заменить Webflux.md index 9846d109..eeec1391 100644 --- a/source/lecture/Доклад. Могут ли Virtual threads заменить Webflux.md +++ b/source/lecture/Доклад. Могут ли Virtual threads заменить Webflux.md @@ -62,7 +62,7 @@ NIO посылает события Netty их преобразовывает в Итого, Sping WebFlux позволял нам обрабатывать множество запросов на одном потоке. И виртуальные потоки нам позволяют делать по сути то же самое. При этом не нужно разбираться в реактивной парадигме разработки. Тогда зачем нам WebFlux? ## Сравнение производительности -Для этого сравним два подхода на примере [небольшого приложения](https://github.com/petrelevich/jvm-digging/tree/master/virtual-thread), которое будет принимать REST запросы и отправлять их в кафку, после чего отвечать клиенту что сообщение доставлено. +Для этого сравним два подхода на примере [небольшого приложения](https://github.com/petrelevich/jvm-digging/tree/master/virtual-thread), которое будет принимать [[../../dev/system-design/RESTful|REST]] запросы и отправлять их в кафку, после чего отвечать клиенту что сообщение доставлено. ![[../../meta/files/images/Pasted image 20241003083724.png]]