Введение в Springdoc OpenAPI в Spring Boot
Хотите автоматически документировать свои REST API на Spring Boot?
Используйте Springdoc OpenAPI для генерации интерактивного Swagger UI с минимальной конфигурацией.✌️
👉 Java Portal
Хотите автоматически документировать свои REST API на Spring Boot?
Используйте Springdoc OpenAPI для генерации интерактивного Swagger UI с минимальной конфигурацией.
Please open Telegram to view this post
VIEW IN TELEGRAM
Базовые понятия метрик производительности
> Latency (Задержка) – Время, необходимое для выполнения одного запроса или операции.
> Throughput (Пропускная способность) – Количество операций в секунду (например, запросов/сек, транзакций/сек).
> P95 / P99 – Перцентильные метрики, показывающие задержку в худших 5% или 1% случаев.
> Tail Latency – Задержка самых медленных запросов (например, 99-й перцентиль); критично для UX.
> Cold Start – Начальная задержка при запуске системы "с нуля" (например, AWS Lambda).
> Warm Start – Повторное использование уже инициализированного сервиса для снижения задержки старта.
> TTFB– Время между отправкой запроса и получением первого байта ответа.
> RPS – Часто используемая метрика пропускной способности API/сервера.
> QPS – Аналог RPS, но чаще применяется к базам данных и поисковым системам.
> Error Rate – Процент запросов, завершившихся ошибкой (например, 5xx или 4xx).
> Apdex Score – Метрика удовлетворённости пользователей: сколько запросов были быстрыми, терпимыми или медленными.
> SLA – Обещанный провайдером уровень доступности или производительности.
> SLO – Внутренняя целевая метрика производительности.
> SLI – Фактически измеренное значение (например, «99.95% запросов быстрее 500 мс»).
> Resource Utilization – Нагрузка на CPU, память, диск и сеть.
> GC Pause Time – Время, в течение которого приложение приостанавливается для сборки мусора.
> Throughput vs Latency Tradeoff – Увеличение числа запросов может снизить задержку... до определённого момента.
> Jank – Подвисания/дёргания при отрисовке на фронтенде (часто вызвано долгими задачами или перерасчётами стилей).
> CPU Throttling – Ограничения по CPU, например, в контейнерах или облачных окружениях.
> I/O Wait Time – Время, которое CPU тратит в ожидании операций ввода/вывода.
> TTI – Сколько времени нужно, чтобы страница стала полностью пригодной для взаимодействия.
> CLS – Измеряет, насколько элементы смещаются при загрузке.
> FPS – Ключевая метрика визуальной производительности (особенно в играх и анимациях).
> Memory Footprint – Объём памяти, используемый системой/процессом при обычной нагрузке.
> Throttling & Backpressure – Механизмы замедления клиентов/систем при высокой нагрузке для стабилизации.
👉 Java Portal
> Latency (Задержка) – Время, необходимое для выполнения одного запроса или операции.
> Throughput (Пропускная способность) – Количество операций в секунду (например, запросов/сек, транзакций/сек).
> P95 / P99 – Перцентильные метрики, показывающие задержку в худших 5% или 1% случаев.
> Tail Latency – Задержка самых медленных запросов (например, 99-й перцентиль); критично для UX.
> Cold Start – Начальная задержка при запуске системы "с нуля" (например, AWS Lambda).
> Warm Start – Повторное использование уже инициализированного сервиса для снижения задержки старта.
> TTFB– Время между отправкой запроса и получением первого байта ответа.
> RPS – Часто используемая метрика пропускной способности API/сервера.
> QPS – Аналог RPS, но чаще применяется к базам данных и поисковым системам.
> Error Rate – Процент запросов, завершившихся ошибкой (например, 5xx или 4xx).
> Apdex Score – Метрика удовлетворённости пользователей: сколько запросов были быстрыми, терпимыми или медленными.
> SLA – Обещанный провайдером уровень доступности или производительности.
> SLO – Внутренняя целевая метрика производительности.
> SLI – Фактически измеренное значение (например, «99.95% запросов быстрее 500 мс»).
> Resource Utilization – Нагрузка на CPU, память, диск и сеть.
> GC Pause Time – Время, в течение которого приложение приостанавливается для сборки мусора.
> Throughput vs Latency Tradeoff – Увеличение числа запросов может снизить задержку... до определённого момента.
> Jank – Подвисания/дёргания при отрисовке на фронтенде (часто вызвано долгими задачами или перерасчётами стилей).
> CPU Throttling – Ограничения по CPU, например, в контейнерах или облачных окружениях.
> I/O Wait Time – Время, которое CPU тратит в ожидании операций ввода/вывода.
> TTI – Сколько времени нужно, чтобы страница стала полностью пригодной для взаимодействия.
> CLS – Измеряет, насколько элементы смещаются при загрузке.
> FPS – Ключевая метрика визуальной производительности (особенно в играх и анимациях).
> Memory Footprint – Объём памяти, используемый системой/процессом при обычной нагрузке.
> Throttling & Backpressure – Механизмы замедления клиентов/систем при высокой нагрузке для стабилизации.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Флаги управления памятью JVM
👉 Java Portal
-Xms
— устанавливает начальный размер кучи (heap). Пример использования: -Xms512m
. Это предотвращает частое перераспределение памяти при прогреве приложения, что может ускорить старт и стабилизировать поведение.-Xmx
— задаёт максимальный размер кучи. Пример: -Xmx2g
. Критически важно для ограничения потребления памяти и предотвращения ошибок OutOfMemoryError (OOM), особенно в долгоживущих или нагруженных приложениях.-Xmn
— определяет размер молодого поколения (Young Generation) в куче. Пример: -Xmn256m
. Точная настройка этого параметра позволяет оптимизировать частоту малых сборок мусора (Minor GC), что напрямую влияет на производительность.-XX:MaxMetaspaceSize
— ограничивает максимальный размер области метаданных классов (Metaspace). Пример: -XX:MaxMetaspaceSize=512m
. Помогает избежать чрезмерного потребления памяти при интенсивной загрузке классов, особенно в приложениях с большим количеством библиотек или плагинов.Please open Telegram to view this post
VIEW IN TELEGRAM
Профилирование с помощью Spring Boot Actuator
Spring Boot Actuator предоставляет эндпоинты, такие как
В связке с Micrometer, Prometheus и Grafana позволяет визуализировать производительность вашего приложения.
👉 Java Portal
Spring Boot Actuator предоставляет эндпоинты, такие как
/actuator/metrics
, /actuator/health
и /actuator/heapdump
.В связке с Micrometer, Prometheus и Grafana позволяет визуализировать производительность вашего приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Устали от лагов, сложных панелей и переплат? Переходите на VPS с AMD Ryzen 9 — быстро, просто, без нервов.
— Цена начинается от 2€
— Скорость канала до 10 Гбит/с
— Поддержка 24/7 — отвечаем быстро и без шаблонов
VPN | Расширение для браузера
Please open Telegram to view this post
VIEW IN TELEGRAM
Пример Spring MVC: Hello World
Простое веб-приложение, в котором контроллер обрабатывает запрос, добавляет данные в модель и отображает их в представлении (view).
👉 Java Portal
Простое веб-приложение, в котором контроллер обрабатывает запрос, добавляет данные в модель и отображает их в представлении (view).
Please open Telegram to view this post
VIEW IN TELEGRAM
image_2025-06-15_08-03-03.png
2.6 MB
Блок
↳ Синтаксис:
↳ Область действия: Только код внутри фигурных скобок {}.
↳ Блокировка: Используется объект
↳ Поведение: Только один поток может одновременно выполнять код внутри блока synchronized для конкретного объекта objectReference. Это позволяет, например, синхронизироваться на приватном объекте, чтобы внешние классы не могли захватить ту же блокировку, или ограничить синхронизацию только частью метода
👉 Java Portal
synchronized
в Java позволяет указать любой объект в качестве блокировки. Это даёт более тонкий контроль по сравнению с синхронизацией всего метода.↳ Синтаксис:
synchronized (objectReference) { // критическая секция }
↳ Область действия: Только код внутри фигурных скобок {}.
↳ Блокировка: Используется объект
objectReference
, указанный в круглых скобках.↳ Поведение: Только один поток может одновременно выполнять код внутри блока synchronized для конкретного объекта objectReference. Это позволяет, например, синхронизироваться на приватном объекте, чтобы внешние классы не могли захватить ту же блокировку, или ограничить синхронизацию только частью метода
Please open Telegram to view this post
VIEW IN TELEGRAM