Compare commits
7 Commits
604ffc55bd
...
6376256d7e
Author | SHA1 | Date | |
---|---|---|---|
6376256d7e | |||
f5fdace7b4 | |||
86d274de15 | |||
1ec9a777a9 | |||
f4b8ccefb9 | |||
968ac2c02b | |||
16bb80f919 |
35
dev/architecture/CAP теорема.md
Normal file
35
dev/architecture/CAP теорема.md
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-03-12
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
CAP теорема — это принцип, описывающий фундаментальные ограничения, с которыми сталкиваются распределённые вычислительные системы в контексте обеспечения следующих трёх свойств:
|
||||
- **Согласованность (Consistency)**: Каждый раз, когда данные читаются, возвращается самое последнее записанное значение или ошибка. С другими словами, операции с данными выглядят так, будто выполняются в некоторой строгой последовательности, одна за другой
|
||||
- **Доступность (Availability)**: Каждый запрос на получение или запись данных получает ответ, независимо от состояния системы, даже если некоторые части системы вышли из строя.
|
||||
- **Устойчивость к разделению (Partition Tolerance)**: Система продолжает функционировать, даже если произошло "разделение" — потеря связи между узлами в распределённой сети. То есть система способна переносить произвольное число сообщений, которые задерживаются или теряются в сети.
|
||||
|
||||
==Согласно теореме CAP, в любой момент времени система может обеспечивать только два из этих трёх свойств.== Это означает, что при разработке системы приходится принимать компромисс между этими свойствами в зависимости от требований приложения и условий эксплуатации. Например, если для системы критически важна согласованность данных и её устойчивость к разделению, возможно придётся пожертвовать её доступностью в некоторых сценариях.
|
||||
|
||||
## Свободные заметки
|
||||
- Google заявляет, что их продукт Google Spanner якобы нарушает CAP теорему.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-03-12]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
34
dev/architecture/Rеverse proxy.md
Normal file
34
dev/architecture/Rеverse proxy.md
Normal 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)
|
||||
```
|
35
dev/architecture/Бэкенд.md
Normal file
35
dev/architecture/Бэкенд.md
Normal 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)
|
||||
```
|
34
dev/architecture/Трёхзвенная структура.md
Normal file
34
dev/architecture/Трёхзвенная структура.md
Normal 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)
|
||||
```
|
19
dev/architecture/Фронтенд.md
Normal file
19
dev/architecture/Фронтенд.md
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
aliases:
|
||||
- фронтенд
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date:
|
||||
- - 2024-05-23
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
- [[Rеverse proxy]]
|
||||
|
||||
Для чего нужен фронтенд
|
||||
- Отдача статического контента
|
||||
- Буферизация запросов
|
||||
- Масштабирование бэкендов
|
||||
- Обслуживание медленных клиентов.
|
22
dev/java/Java Reflection.md
Normal file
22
dev/java/Java Reflection.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
aliases:
|
||||
- рефлексию
|
||||
- рефлексия
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-09-11
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-09-11]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
-
|
@ -36,7 +36,7 @@ B следующие недостатки:
|
||||
> Дай мне места для размещения того, что пока еще нужно. Дай мне смелости удалить то, что больше не пригодится. И дай мне мудрости, чтобы отличить одно от другого.
|
||||
## Производительность GC
|
||||
Вам быстро, дешево или качественно?
|
||||
- **Throughput.** Объем вычислительных ресурсов CPU, затрачиваемых на работу GC.
|
||||
- [[../../architecture/Throughput|Throughput]]. Объем вычислительных ресурсов CPU, затрачиваемых на работу GC.
|
||||
- **Предсказуемость.** На какое время прерывается работа приложения.
|
||||
- **Footprint.** Объем используемой памяти.
|
||||
## Работа GC
|
||||
|
@ -0,0 +1,45 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: 2024-09-11
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Java разработка|00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
В [моей библиотеке по конструированию Telegram ботов](https://git.struchkov.dev/Godfather-Bots/telegram-bot) при переходе на [[../../meta/zero/00 Quarkus|Quarkus 3]] возникала проблема.
|
||||
|
||||
Проблема возникает при вызове метода в [библиотеке телеграма](https://mvnrepository.com/artifact/org.telegram/telegrambots) `AbsSender.executeAsync()`. Судя по всему сессии БД зависают и не освобождаются, из-за чего пул сессий заканчивается и возникает следующее исключение:
|
||||
|
||||
```shell
|
||||
024-09-11 11:25:05,060 ERROR [io.qua.arc.imp.AbstractInstanceHandle] (pool-12-thread-1) Error occurred while destroying instance of bean [io.quarkus.hibernate.reactive.runtime.ReactiveSessionProducer_ProducerMethod_createMutinySession_1321d110ee9e92bda147899150401e0a136779c7_Bean]: java.util.concurrent.CompletionException: java.lang.IllegalStateException: HR000069: Detected use of the reactive Session from a different Thread than the one which was used to open the reactive Session - this suggests an invalid integration; original thread [186]: 'vert.x-eventloop-thread-5' current Thread [189]: 'vert.x-eventloop-thread-6'
|
||||
```
|
||||
|
||||
Проблема в том, что в `DefaultAbsSender` есть поле `protected final ExecutorService exe`, который используется в `AbsSender.executeAsync()`. Этот `ExecutorService` никак не изменить, в конструктор не передать, сеттера нет, да и поле `final`.
|
||||
|
||||
Эта особенность приводит к тому, что при использовании вызовов телеграм в контексте работы с [[../../meta/zero/00 Hibernate Reactive|Hibernate Reactive]] мы получаем ситуацию, в которой [[../fundamental/Поток процесса ОС|поток]] меняется. [[../../meta/zero/00 Hibernate Reactive|Hibernate Reactive]] в свою очередь требует, чтобы вся работа выполнялась в рамках одного и того же [[../fundamental/Поток процесса ОС|потока]] из-за особенностей управления сессиями и транзакциями.
|
||||
|
||||
> В [документации](https://hibernate.org/reactive/documentation/2.0/reference/html_single/#_sessions_and_vert_x_contexts) четко сказано: "Сеанс не является потокобезопасным (или "потокобезопасным"), поэтому его использование в разных потоках (или реактивных потоках) может привести к ошибкам, которые крайне трудно обнаружить. Не говорите, что мы вас не предупреждали!"
|
||||
|
||||
Решением данной ситуации для своей библиотеки я нашел в следующем. У меня есть `TelegramPollingBot`, который является наследником `DefaultAbsSender`, поэтому в конструкторе я получаю доступ к `final` полю через [[../java/Java Reflection|рефлексию]], далее делаю его изменяемым и устанавливаю `ExecutorService`.
|
||||
|
||||
```java
|
||||
final Field field = this.getClass().getSuperclass().getSuperclass().getDeclaredField("exe");
|
||||
// Делаем поле exe доступным для изменений
|
||||
field.setAccessible(true);
|
||||
// Заменяем поле exe в экземпляре наследника
|
||||
field.set(this, Infrastructure.getDefaultWorkerPool());
|
||||
// Закрываем доступ к полю exe
|
||||
field.setAccessible(false);
|
||||
```
|
||||
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Снипеты для Java|00 Снипеты для Java]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Создана**:: [[2024-09-11]]
|
||||
**Автор**::
|
||||
### Дополнительные материалы
|
||||
- [Parallel execution: A Hibernate Reactive Gotcha](https://blog.lunatech.com/posts/2023-05-19-hibernate-reactive-gotchas)
|
29
education/Метапознание.md
Normal file
29
education/Метапознание.md
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
aliases:
|
||||
- метапознание
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: "[[2023-10-28]]"
|
||||
zero-link:
|
||||
- "[[../meta/zero/00 Образование|00 Образование]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
||||
Метапознание - это способность осознавать, контролировать и оценивать свои процессы познания и обучения. Оно включает понимание того, как мы учимся, как мы понимаем информацию и как мы используем знания для выполнения задач.
|
||||
|
||||
Метапознание также означает осознание своих собственных сильных и слабых сторон в области обучения и умение регулировать свое поведение для оптимизации результатов обучения.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Образование|00 Образование]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2023-10-28]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
33
health/disease/Синдром беспокойных ног.md
Normal file
33
health/disease/Синдром беспокойных ног.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
aliases:
|
||||
- СБН
|
||||
tags:
|
||||
- maturity/🌱
|
||||
date: "[[2023-10-26]]"
|
||||
zero-link:
|
||||
- "[[../../meta/zero/00 Здоровье|00 Здоровье]]"
|
||||
parents:
|
||||
- "[[../Болезни|Болезни]]"
|
||||
linked:
|
||||
---
|
||||
Регулярно возникающие неприятные ощущения в нижних, иногда в верхних конечностях, из-за которых людям постоянно хочется ими шевелить или дергать. Обычно такие ощущения проявляются во второй половине дня. И иногда не проходят всю ночь. СБН мешает уснуть и приводит к частым пробуждениями.
|
||||
|
||||
**Почему возникает?**
|
||||
Иногда из-за дефицита железа, болезней почек, или ревматоидного артрита. Достаточно вылечить их - неприятные ощущения уйдут. Но бывает и так, что СБН начинается сам по себе. Тогда его лечат лекарствами, влияющими на дофаминовые рецепторы в мозге.
|
||||
|
||||
Каждый раз врач подбирает конкретное средства и дозировку индивидуально. Также показаны специальные упражнения, [[../../../../knowledge/mindfulness/Медитация|медитация]], [[../../../../knowledge/mindfulness/Йога|йога]], и техники расслабления.
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../../meta/zero/00 Здоровье|00 Здоровье]]
|
||||
**Родитель**:: [[../Болезни|Болезни]]
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2023-10-26]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
25
health/Болезни.md
Normal file
25
health/Болезни.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
aliases:
|
||||
tags:
|
||||
- maturity/🌱
|
||||
zero-link:
|
||||
- "[[../meta/zero/00 Здоровье|00 Здоровье]]"
|
||||
linked:
|
||||
date: 2024-09-10
|
||||
---
|
||||
- [[disease/Синдром беспокойных ног|Синдром беспокойных ног]]
|
||||
***
|
||||
## Мета информация
|
||||
**Область**:: [[../meta/zero/00 Здоровье|00 Здоровье]]
|
||||
**Родитель**::
|
||||
**Источник**::
|
||||
**Автор**::
|
||||
**Создана**:: [[2024-09-10]]
|
||||
### Дополнительные материалы
|
||||
-
|
||||
### Дочерние заметки
|
||||
```dataview
|
||||
LIST
|
||||
FROM [[]]
|
||||
WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link)
|
||||
```
|
23
index.md
23
index.md
@ -14,7 +14,9 @@ enableToc: false
|
||||
Основная идея цифрового сада — это процесс, а не результат. Это место, где идеи могут расти, пересекаться и менять направление. Записи здесь — это как маленькие растения, которые можно пересаживать, подкармливать и наблюдать, как они со временем изменяются.
|
||||
|
||||
![digital-garden](meta/files/images/digital-garden.png)
|
||||
## 🤔 Зачем мне сад?
|
||||
|
||||
Я публикую не все свои заметки, но опубликованная заметка может ссылаться на не опубликованную. В таком случае ссылка будет вести на страницу 404. В этом случае можно написать в комментарии к заметке и вежливо попросить поделиться заметкой, возможно я просто забыл ее опубликовать.
|
||||
### 🤔 Зачем мне сад?
|
||||
**Ведение заметок это отличный способ накапливать знания и обучаться.** Я пишу заметки в процессе изучения какой-то новой темы. После чего структурирую их какое-то время. И уже после могу решить опубликовать заметки в мой цифровой сад.
|
||||
|
||||
Все люди делают ошибки, особенно в процессе обучения, это нормально. Поэтому не стоит считать все написанное тут истинной в последней инстанции. ==Если заметили фактическую ошибку, то можете воспользоваться кнопкой "Редактировать"== и предложить свое исправление, или оставьте комментарий на странице с заметкой.
|
||||
@ -25,18 +27,27 @@ enableToc: false
|
||||
## 🗺 Как не заблудиться?
|
||||
Чтобы получить максимальную пользую от сада, нужно научиться в нем ориентироваться. Этот раздел поможет вам.
|
||||
|
||||
🧑🔬 Для настоящих исследователей в нижней части сайта есть кнопка: "<a id="random-page-button">Мне повезет 🎲</a>", которая переместит вас на случайную заметку.
|
||||
🔎 Если вы ищите что-то конкретное, то воспользуйтесь поиском.
|
||||
- 🔎 Если вы ищите что-то конкретное, то воспользуйтесь поиском.
|
||||
- 🧑🔬 Для настоящих исследователей в нижней части сайта есть кнопка: "<a id="random-page-button">Мне повезет 🎲</a>", которая переместит вас на случайную заметку. Это отличный способ узнать что-то новое.
|
||||
- 🔗 Граф знаний. Находится в правом верхнем углу. По нему можно изучить связи заметок между собой.
|
||||
- 🎓 В конце каждой заметки есть раздел **Мета информация**. Эта информация позволит изучать тему дальше. Там указано следующее
|
||||
- Область знания, к которой относится заметка.
|
||||
- Родительская заметка по теме.
|
||||
- Дочерние заметки.
|
||||
- Дополнительные материалы.
|
||||
- Обратные ссылки. Это список заметок, которые ссылаются на текущую заметку.
|
||||
- Дата создания заметки. По ней можно получить созданные в этот день заметки. Пока в разработке.
|
||||
- Все дочерние заметки. Пока в разработке.
|
||||
### 🌳 Корни дерева знаний
|
||||
Каждая заметка принадлежит какой-то "области знаний" - #type/zero-link . А здесь можно видеть иерархию всех областей знаний. Это корни деревьев моего сада. С этих заметок можно начать погружаться в область.
|
||||
Каждая заметка принадлежит какой-то "области знаний" - #type/zero-link . А здесь можно видеть иерархию всех областей знаний. Это корни деревьев моего сада. С этих заметок можно начать погружаться в определенную область.
|
||||
|
||||
- [[meta/zero/00 Здоровье|00 Здоровье]]
|
||||
- [[meta/zero/00 Здоровье|Здоровье]]
|
||||
- [Продуктивность](meta/zero/00%20Продуктивность.md)
|
||||
- [Разработка](meta/zero/00%20Разработка.md)
|
||||
- [Java разработка](meta/zero/00%20Java%20разработка.md)
|
||||
- [Quarkus](meta/zero/00%20Quarkus.md)
|
||||
- [SpringBoot](meta/zero/00%20SpringBoot.md)
|
||||
- [00 Hibernate](meta/zero/00%20Hibernate.md)
|
||||
- [Hibernate](meta/zero/00%20Hibernate.md) / [[meta/zero/00 Hibernate Reactive|Hibernate Reactive]]
|
||||
- Архитектура
|
||||
- [[meta/zero/00 Архитектура ЭВМ|Архитектура ЭВМ]]
|
||||
- [Архитектура ПО](meta/zero/00%20Архитектура%20ПО.md)
|
||||
|
BIN
meta/files/images/Pasted image 20240413205842.png
Normal file
BIN
meta/files/images/Pasted image 20240413205842.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 194 KiB |
14
meta/zero/00 Hibernate Reactive.md
Normal file
14
meta/zero/00 Hibernate Reactive.md
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
aliases:
|
||||
- Hibernate Reactive
|
||||
tags:
|
||||
- type/zero-link
|
||||
zero-link:
|
||||
- "[[00 Hibernate|00 Hibernate]]"
|
||||
parents:
|
||||
linked:
|
||||
title: Hibernate Reactive
|
||||
---
|
||||
- [[../../dev/snippet/Проблема с Hibernate Reactive в Telegram SDK для Java|Проблема с Hibernate Reactive в Telegram SDK для Java]]
|
||||
|
||||
В [документации](https://hibernate.org/reactive/documentation/2.0/reference/html_single/#_sessions_and_vert_x_contexts) сказано: "Сеанс не является потокобезопасным (или "потокобезопасным"), поэтому его использование в разных потоках (или реактивных потоках) может привести к ошибкам, которые крайне трудно обнаружить. Не говорите, что мы вас не предупреждали!"
|
@ -6,4 +6,6 @@ tags:
|
||||
title: Hibernate
|
||||
---
|
||||
- [Дублирование значений при использовании @ElementCollection и @OneToMany](../../dev/java/hibernate/Дублирование%20значений%20при%20использовании%20@ElementCollection%20и%20@OneToMany.md)
|
||||
- [Логирование SQL в Hibernate](../../dev/java/hibernate/Логирование%20SQL%20в%20Hibernate.md)
|
||||
- [Логирование SQL в Hibernate](../../dev/java/hibernate/Логирование%20SQL%20в%20Hibernate.md)
|
||||
|
||||
- [[00 Hibernate Reactive|Hibernate Reactive]]
|
@ -36,7 +36,7 @@ aliases:
|
||||
- Асинхронная обработка
|
||||
- Конвейерная обработка
|
||||
- Использование толстого клиента
|
||||
- [Кэширование](Кэширование.md)
|
||||
- [Кэширование](../../dev/architecture/Кэширование.md)
|
||||
- [Функциональное разделение](Функциональное%20разделение.md)
|
||||
- [Шардинг](Шардирование%20в%20БД.md)
|
||||
- Виртуальные шарды
|
||||
@ -74,6 +74,6 @@ aliases:
|
||||
- [Reliability](Reliability.md)
|
||||
- [Disaster recovery](Disaster%20recovery.md)
|
||||
|
||||
[Пропускная способность](Throughput.md) сетевой карты 1 Гбит/с (реальная 800-900 Мбит/с) или 120 000 пакетов в секунду. Bonding позволяет несколько физических интернет соединений объединить в одно логическое, например, 4 интерфейса - 3.5 Гбит/с.
|
||||
[Пропускная способность](../../dev/architecture/Throughput.md) сетевой карты 1 Гбит/с (реальная 800-900 Мбит/с) или 120 000 пакетов в секунду. Bonding позволяет несколько физических интернет соединений объединить в одно логическое, например, 4 интерфейса - 3.5 Гбит/с.
|
||||
|
||||
В highload системах как правило отдают предпочтение [throughput](Throughput.md).
|
||||
В highload системах как правило отдают предпочтение [throughput](../../dev/architecture/Throughput.md).
|
@ -8,6 +8,7 @@ title: Java разработка
|
||||
---
|
||||
- [Устройство Java](Устройство%20Java.md)
|
||||
- [JDK](../../dev/java/JDK.md)
|
||||
- [[../../dev/java/Java Reflection|Java Reflection]]
|
||||
- [Снипеты для Java](00%20Снипеты%20для%20Java.md)
|
||||
- Системы сборки
|
||||
- [Maven](00%20Maven.md)
|
||||
|
@ -5,8 +5,9 @@ parents:
|
||||
- "[[00 Разработка]]"
|
||||
title: Архитектура ПО
|
||||
---
|
||||
- [[../../dev/architecture/CAP теорема|CAP теорема]]
|
||||
- [Трёхзвенная структура](../../dev/architecture/Трёхзвенная%20структура.md)
|
||||
- [Монолитная архитектура](Монолитная%20архитектура.md)
|
||||
- [Микросервисная архитектура](Микросервисная%20архитектура.md)
|
||||
- [Service Oreinted Architecture](Service%20Oreinted%20Architecture.md)
|
||||
- [Трёхзвенная структура](Трёхзвенная%20структура.md)
|
||||
- [[00 HighLoad|HighLoad]]
|
@ -15,6 +15,7 @@ title: Здоровье
|
||||
|
||||
Все понимают важность [правильного питания](Правильное%20питание.md), [качественного сна](Качественный%20сон.md) и [физической активности](Физическая%20нагрузка.md), но многие не осознают важность мыслительного процесса. Важно не только потреблять информацию, но и обрабатывать ее, обдумывать, делать выводы.
|
||||
## Основные ссылки
|
||||
- [[../../health/Болезни|Болезни]]
|
||||
- [Качественный сон](Качественный%20сон.md)
|
||||
- [Как наладить сон?](Как%20наладить%20сон?.md)
|
||||
- [Правильное питание](Правильное%20питание.md)
|
||||
|
@ -3,4 +3,6 @@ tags:
|
||||
- type/zero-link
|
||||
title: Образование
|
||||
---
|
||||
Согласно исследованиям, оптимальное время для начала обучения и работы [лежит в промежутке 11:00-12:00](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5395635/). Хотя исследователи и признают, что это довольно индивидуально, и важно слушать свои ощущения.
|
||||
- [[../../education/Метапознание|Метапознание]]
|
||||
## Свободные заметки
|
||||
- Согласно исследованиям, оптимальное время для начала обучения и работы [лежит в промежутке 11:00-12:00](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5395635/). Хотя исследователи и признают, что это довольно индивидуально, и важно слушать свои ощущения.
|
@ -14,4 +14,5 @@ aliases:
|
||||
- [Несколько подключений к базе H2](../../dev/snippet/Несколько%20подключений%20к%20базе%20H2.md)
|
||||
- [Дебаг приложения на этапе компиляции IntelliJ IDEA](../../dev/snippet/Дебаг%20приложения%20на%20этапе%20компиляции%20IntelliJ%20IDEA.md)
|
||||
- [Логирование SQL в Hibernate](../../dev/java/hibernate/Логирование%20SQL%20в%20Hibernate.md)
|
||||
- [Бинарный поиск на Java](../../dev/java/Бинарный%20поиск%20на%20Java.md)
|
||||
- [Бинарный поиск на Java](../../dev/java/Бинарный%20поиск%20на%20Java.md)
|
||||
- [[../../dev/snippet/Проблема с Hibernate Reactive в Telegram SDK для Java|Проблема с Hibernate Reactive в Telegram SDK для Java]]
|
Loading…
Reference in New Issue
Block a user