На основе Spring Cloud: микросервисная архитектура
Данный проект представляет собой микросервисную систему, созданную с использованием таких фреймворков, как Spring Boot, Spring Cloud, Spring Oauth2 и Spring Cloud Netflix.
Технологический стек
- Spring boot — это облегчённая микрофреймворк для упрощения разработки и развёртывания Spring-приложений.
- Eureka — сервис обнаружения облачных сервисов, основанный на REST, который помогает определять местоположение сервисов и обеспечивает обнаружение и перенос отказов в облачной среде.
- Spring Cloud Config — инструмент управления конфигурацией, позволяющий централизованно управлять конфигурациями кластеров и поддерживающий локальное хранение, Git и Subversion.
- Hystrix — инструмент для обеспечения отказоустойчивости, предназначенный для контроля за сервисами и сторонними библиотеками путём использования механизма «отключения» (срабатывает при возникновении проблем).
- Zuul — фреймворк, предоставляющий динамическую маршрутизацию, мониторинг, эластичность и безопасность на границе облачной платформы. Zuul можно рассматривать как шлюз для всех запросов к веб-сайту потоковых приложений Netflix.
- Spring Cloud Bus — шина событий и сообщений, используемая для распространения изменений состояния в кластере (например, изменения конфигурации) и может быть объединена с Spring Cloud Config для реализации горячего развёртывания.
- Spring Cloud Sleuth — набор инструментов для сбора журналов, включающий Dapper и log-based отслеживание, а также Zipkin и HTrace, обеспечивающий распределённое отслеживание для приложений SpringCloud.
- Ribbon — предоставляет балансировку нагрузки в облаке с различными стратегиями балансировки нагрузки, которые могут использоваться вместе с обнаружением сервисов и механизмом отключения.
- Turbine — инструмент, собирающий потоки событий от серверов и используемый для мониторинга метрик Hystrix в кластерах.
- Spring Cloud Stream — пакет разработки операций с данными Spring, который инкапсулирует взаимодействие с такими системами обмена сообщениями, как Redis, Rabbit и Kafka.
- Feign — декларативный и шаблонный HTTP-клиент.
- Spring Cloud OAuth2 — набор инструментов безопасности, основанный на Spring Security и OAuth2, для добавления контроля безопасности в приложения.
Архитектура приложения
Проект включает 8 сервисов:
- registry — регистрация и обнаружение сервисов;
- config — внешняя конфигурация;
- monitor — мониторинг;
- zipkin — распределённая трассировка;
- gateway — прокси-сервер для интерфейсов всех микросервисов;
- auth-service — аутентификация OAuth2;
- svca-service — бизнес-сервис A;
- svcb-service — бизнес-сервис B.
Системная архитектура
В тексте есть изображение архитектуры системы, но оно не представлено в запросе.
Компоненты приложения
Также в тексте есть изображение компонентов системы, но оно тоже не представлено в запросе.
Запуск проекта
Есть два способа запуска проекта: с помощью Docker и вручную.
Для запуска с помощью Docker необходимо выполнить следующие шаги:
- Настроить среду Docker.
- Выполнить команду
mvn clean package
для сборки проекта и создания образа Docker.
- В корневом каталоге проекта выполнить команду
docker-compose up -d
для запуска всех сервисов проекта.
Ручной запуск требует следующих действий:
- Настройка RabbitMQ.
- Изменение файла hosts для указания имён хостов на локальные IP-адреса.
- Запуск сервисов registry, config, monitor и zipkin.
- Запуск сервисов gateway, auth-service, svca-service и svcb-service.
Предварительный просмотр проекта
Далее в тексте идёт описание предварительного просмотра проекта, включая информацию о регистрации, мониторинге, интерфейсах и тестировании. Однако эта информация не представлена в запросе, поэтому перевод не выполнен. пользователь:пароль http://localhost:8888/bus/refresh
Комментарии ( 0 )