RedGry / SOA

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Лабораторная работа 3 по Сервис-ориентированной архитектуре

Переработать веб-сервисы из лабораторной работы #2 таким образом, чтобы они реализовывали основные концепции микросервисной архитектуры. Для этого внести в оба сервиса -- "вызываемый" и "вызывающий" перечисленные ниже изменения.

Изменения в "вызываемом" сервисе:

  • Сконфигурировать окружение для работы сервиса на платформе Spring Boot.
  • Запустить второй экземпляр сервиса на другом порту. Реализовать балансировку нагрузки между экземплярами с помощью Haproxy.
  • Реализовать механизм Service Discovery. Для этого установить Consul и интегрировать свой сервис с ним, автоматически регистрируя в момент запуска.

Изменения в "вызывающем" сервисе:

  • Разделить приложение на два модуля -- веб-приложение с веб-сервисом и EJB-jar с бизнес-компонентами.
  • Переместить всю логику из класса сервиса в Stateless EJB. В классе сервиса оставить только обращение к методам бизнес-интерфейса. EJB-компонент должен быть доступен удалённо (иметь Remote-интерфейс).
  • Сформировать на уровне сервера приложений пул компонентов EJB настраиваемой мощности, динамически расширяемый при увеличении нагрузки.
  • Настроить второй экземпляр сервера приложений на другом порту, "поднять" на нём вторую копию веб-сервиса и пула EJB.
  • Настроить балансировку нагрузки на оба запущенных узла через Haproxy.

Оба веб-сервиса и клиентское приложение должны сохранить полную совместимость с API, реализованными в рамках предыдущих лабораторных работ.

Вопросы к защите лабораторной работы:

  1. Микросервисная архитектура. Особенности реализации. Сходства и отличия от "обычной" СОА.
  2. Разработка сервисов в микросервисной архитектуре. Стандарты и технологии. Принципы декомпозиции приложений на микросервисы.
  3. Масштабируемость микросервисных приложений. Балансировщики нагрузки.
  4. Концепция Service Discovery. Подходы и технологические решения.
  5. Consul. Установка и конфигурация. Регистрация сервисов.
  6. Разработка микросервисов на Java EE. Реализация Service Discovery и балансировки нагрузки.
  7. Разработка микросервисов на Spring. Интеграция с балансировщиками нагрузки и провайдерами Serviсе Discovery.
  8. Spring Cloud. Особенности, отличия от "голого" Spring Boot. Spring Cloud Netflix.

About


Languages

Language:Java 48.8%Language:JavaScript 42.2%Language:Lua 6.1%Language:HTML 1.1%Language:CSS 0.6%Language:Batchfile 0.6%Language:Less 0.6%