Перейти к основному содержимому

· 6 мин. чтения

1. Обзор

В Spring 5 добавлен совершенно новый фреймворк — Spring WebFlux , поддерживающий реактивное программирование в наших веб-приложениях. Для выполнения HTTP-запросов мы можем использовать интерфейс WebClient , предоставляющий функциональный API на основе Reactor Project .

В этом руководстве мы сосредоточимся на настройках времени ожидания для нашего WebClient . Мы обсудим различные методы, как правильно установить различные тайм-ауты, как глобально во всем приложении, так и специфичные для запроса.

2. Веб -клиент и HTTP-клиенты

Прежде чем мы двинемся дальше, давайте сделаем краткий обзор. Spring WebFlux включает в себя собственный клиент, класс WebClient , для выполнения HTTP-запросов реактивным способом. Для правильной работы WebClient также требуется клиентская библиотека HTTP. Spring предоставляет встроенную поддержку для некоторых из них, но Reactor Netty используется по умолчанию.

· 10 мин. чтения

1. Введение

Сегодня приложения нередко обслуживают тысячи или даже миллионы пользователей одновременно. Такие приложения требуют огромных объемов памяти. Однако управление всей этой памятью может легко повлиять на производительность приложения.

Чтобы решить эту проблему, в Java 11 был представлен сборщик мусора Z (ZGC) в качестве экспериментальной реализации сборщика мусора (GC).

В этом руководстве мы увидим, как ZGC удается поддерживать малое время паузы даже на кучах размером в несколько терабайт .

2. Основные понятия

· 3 мин. чтения

1. Обзор

Обычно журналы консоли дают нам возможность отлаживать нашу систему простым и интуитивно понятным способом. Тем не менее, бывают случаи, когда мы не хотим включать эту функцию в нашей системе.

В этом кратком руководстве мы увидим, как избежать входа в консоль при запуске приложения Spring Boot .

Мы упростим задачу с помощью простых примеров, показывающих, как этого добиться, независимо от того, используем ли мы Logback, Log4js2 или даже среду Java Util Logging.

Чтобы узнать больше о фреймворках ведения журнала для Spring Boot, мы предлагаем ознакомиться с нашим руководством по ведению журнала в Spring Boot .

2. Как отключить вывод консоли для входа в систему

· 5 мин. чтения

1. Введение

В этом кратком руководстве мы продемонстрируем основы регистрации входящих запросов с использованием фильтра регистрации Spring. Если мы только начинаем заниматься логированием, то можем ознакомиться с этой вводной статьей по логированию , а также со статьей SLF4J .

2. Зависимости Maven

Зависимости ведения журнала будут такими же, как и во вступительной статье; мы просто добавим здесь Spring:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>

· 5 мин. чтения

1. Введение

В этом руководстве мы продолжаем изучать Kubernetes API для Java . На этот раз мы сосредоточимся на двух его функциях: пейджинге и асинхронных вызовах .

2. Пейджинг

В двух словах, пейджинг позволяет нам перебирать большой результирующий набор фрагментами , также известными как страницы — отсюда и название этого метода. В контексте Kubernetes Java API эта функция доступна во всех методах, возвращающих список ресурсов . Эти методы всегда включают два необязательных параметра, которые мы можем использовать для повторения результатов:

  • limit : максимальное количество элементов, возвращаемых в одном вызове API.
  • continue : токен продолжения , который сообщает серверу начальную точку для возвращаемого набора результатов.

· 3 мин. чтения

1. Обзор

В этом руководстве мы поймем назначение package-info.java и его полезность. Проще говоря, package-info — это файл Java, который можно добавить в любой пакет Java .

2. Назначение package-info

В настоящее время файл package-info.java служит двум целям:

  • Место для документации на уровне пакетов
  • Главная для аннотаций на уровне пакета

· 14 мин. чтения

1. Обзор

В этой статье мы разберемся с основами принципов и практик DevOps. Мы увидим, почему это актуально и полезно при разработке программного обеспечения. Мы также поймем, как мы можем осмысленно внедрить DevOps и какие инструменты помогут нам в этом путешествии.

2. Исторический контекст

Мы не сможем оценить DevOps в его нынешнем виде, не оглянувшись немного в историю. Первые дни разработки программного обеспечения в основном характеризовались тем, что мы называем методологией водопада. Фактически это означает, что программное обеспечение последовательно концептуализировалось, проектировалось, разрабатывалось, тестировалось и распространялось .

Каждый шаг был максимально детализирован, так как обратный путь стоил очень дорого . На самом деле это означало гораздо более длительный период ожидания между мыслью и действием. Однако это не было такой проблемой, поскольку технологический ландшафт был гораздо менее изменчивым, а сбои были слишком распространены.

· 5 мин. чтения

1. Обзор

Docker — это инструмент для простого создания, развертывания и запуска приложений. Это позволяет нам упаковывать наши приложения со всеми зависимостями и распространять их как отдельные пакеты. Docker гарантирует, что наше приложение будет работать одинаково на каждом экземпляре Docker.

Когда мы начинаем использовать Docker, нам нужно уяснить две основные концепции — образы и контейнеры .

В этом уроке мы узнаем, что они из себя представляют и чем они отличаются.

2. Докер-образы

· 6 мин. чтения

1. Введение

Jenkins — отличный инструмент для автоматизации сборки и доставки программного обеспечения, особенно при использовании git для управления конфигурацией программного обеспечения. Однако распространенная проблема при использовании Jenkins заключается в том, как обрабатывать конфиденциальные данные, такие как пароли или токены .

В этом руководстве мы рассмотрим, как безопасно внедрять секреты git в конвейеры и задания Jenkins.

2. Секреты Git

Для начала мы сначала рассмотрим создание секретов git.

· 7 мин. чтения

1. Введение

В этой статье мы реализуем простой конвейер непрерывной доставки с Jenkins , Marathon и Mesos .

Во-первых, мы дадим общий обзор технологического стека и архитектуры с объяснением того, как все сочетается друг с другом. После этого мы перейдем к практическому пошаговому примеру.

Результатом этого станет полностью автоматизированный конвейер Jenkins, развертывающий наше приложение в нашем кластере Mesos с помощью Marathon.

2. Обзор стека технологий