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

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

1. Введение

В этом уроке мы узнаем, как использовать функцию Spring Cloud.

Мы создадим и запустим простую облачную функцию Spring локально, а затем развернем ее на AWS.

2. Настройка функции Spring Cloud

Для начала реализуем с нуля и протестируем простой проект с двумя функциями, используя разные подходы:

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

1. Обзор

OpenFeign — это декларативный клиент REST, который мы можем использовать в приложениях Spring Boot . Предположим, что у нас есть REST API, защищенный с помощью OAuth2 , и мы хотим вызвать его с помощью OpenFeign. В этой ситуации нам нужно будет предоставить токен доступа с помощью OpenFeign.

В этом руководстве мы расскажем , как добавить поддержку OAuth2 в клиент OpenFeign .

2. Служба для проверки подлинности службы

Проверка подлинности между службами — популярная тема в области безопасности API. Мы можем использовать mTLS или JWT , чтобы обеспечить механизм аутентификации для REST API. Однако протокол OAuth2 по умолчанию является решением для защиты API . Допустим, мы хотим вызвать безопасную службу (роль сервера), используя другую службу (роль клиента). В этом сценарии мы используем тип предоставления учетных данных клиента . Обычно мы используем учетные данные клиента для аутентификации между двумя API или системами без конечного пользователя. На рисунке ниже показаны основные участники этого типа гранта:

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

1. Введение

В предыдущей статье мы рассмотрели, что такое Spring Cloud Gateway и как использовать встроенные предикаты для реализации основных правил маршрутизации. Однако иногда этих встроенных предикатов может быть недостаточно. Например, наша логика маршрутизации может по какой-то причине потребовать поиска в базе данных.

В этих случаях Spring Cloud Gateway позволяет нам определять пользовательские предикаты. После определения мы можем использовать их как любой другой предикат, что означает, что мы можем определять маршруты с помощью Fluent API и/или DSL.

2. Анатомия предиката

Вкратце, предикат в Spring Cloud Gateway — это объект, который проверяет, соответствует ли данный запрос заданному условию. Для каждого маршрута мы можем определить один или несколько предикатов, которые, если они будут удовлетворены, будут принимать запросы для настроенного бэкенда после применения любых фильтров.

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

1. Введение

Обычный вариант использования Spring Cloud Gateway — выступать в качестве фасада для одной или нескольких служб, предлагая клиентам более простой способ их использования.

В этом руководстве мы покажем различные способы настройки открытых API-интерфейсов путем перезаписи URL-адресов перед отправкой запроса на серверные части.

2. Краткий обзор Spring Cloud Gateway

Проект Spring Cloud Gateway построен на основе популярных Spring Boot 2 и Project Reactor , поэтому он наследует их основные преимущества:

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

1. Введение

Spring Cloud Gateway — это библиотека, которая позволяет нам быстро создавать легкие шлюзы API на основе Spring Boot, о которых мы уже рассказывали в предыдущих статьях.

На этот раз мы покажем, как быстро реализовать шаблоны OAuth 2.0 поверх него .

2. Краткий обзор OAuth 2.0

Стандарт OAuth 2.0 — это хорошо зарекомендовавший себя стандарт, используемый во всем Интернете в качестве механизма безопасности, с помощью которого пользователи и приложения могут безопасно получать доступ к ресурсам.

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

1. Введение

Spring Cloud Gateway — это интеллектуальный прокси-сервис, часто используемый в микросервисах. Он прозрачно централизует запросы в единой точке входа и направляет их в соответствующий сервис. Одной из самых интересных его особенностей является концепция фильтров ( WebFilter или GatewayFilter ).

WebFilter вместе с Predicate factory включает в себя полный механизм маршрутизации. Spring Cloud Gateway предоставляет множество встроенных фабрик WebFilter , которые позволяют взаимодействовать с HTTP-запросами до достижения прокси-сервиса и HTTP-ответами перед доставкой результата клиенту . Также возможно реализовать пользовательские фильтры .

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

2. Фабрики веб- фильтров

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

1. Обзор

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

Этот относительно новый проект, несомненно, обеспечивает простую интеграцию с Kubernetes для приложений Spring Boot . Перед началом может быть полезно посмотреть, как развернуть приложение Spring Boot в Minikube , локальной среде Kubernetes .

В этом уроке мы:

  • Установите Minikube на нашу локальную машину
  • Разработайте пример архитектуры микросервисов с двумя независимыми приложениями Spring Boot, взаимодействующими через REST.
  • Настройте приложение в кластере с одним узлом с помощью Minikube.
  • Разверните приложение с помощью конфигурационных файлов YAML .

2. Сценарий

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

1. Введение

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

2. Что такое балансировка нагрузки?

Балансировка нагрузки — это процесс распределения трафика между разными экземплярами одного и того же приложения.

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

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

1. Обзор

В этом руководстве мы представим обнаружение сервисов на стороне клиента через « Spring Cloud Netflix Eureka.

Обнаружение служб на стороне клиента позволяет службам находить друг друга и связываться друг с другом без жесткого кодирования имени хоста и порта. Единственной «фиксированной точкой» в такой архитектуре является реестр служб, в котором должна регистрироваться каждая служба.

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

С Netflix Eureka каждый клиент может одновременно действовать как сервер, чтобы реплицировать свой статус подключенному узлу. Другими словами, клиент извлекает список всех подключенных одноранговых узлов в реестре служб и отправляет все дальнейшие запросы к другим службам с помощью алгоритма балансировки нагрузки.

Чтобы быть проинформированным о присутствии клиента, они должны отправить в реестр сигнал сердцебиения.

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

1. Обзор

В этом руководстве мы рассмотрим Spring Cloud Netflix Hystrix — библиотеку отказоустойчивости. Мы воспользуемся библиотекой и реализуем корпоративный шаблон Circuit Breaker, описывающий стратегию предотвращения каскадного сбоя на разных уровнях приложения.

Принцип аналогичен электронике: Hystrix отслеживает способы неудачных вызовов соответствующих служб. В случае такого отказа он разомкнет цепь и перенаправит вызов резервному методу.

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

2. Производитель ОТДЫХА