Объедините маленькие сервисы REST с начальной загрузкой в ​​один большой как зависимости - PullRequest
0 голосов
/ 26 апреля 2020

Я собрал несколько небольших REST-сервисов на основе Spring-Boot. Каждый из этих сервисов REST имеет собственную базу данных, собственную конфигурацию и может работать независимо от других сервисов. Каждый сервис сопоставлен с отдельным портом. Вы можете просто запустить его и вызвать каждую из предоставленных конечных точек REST.

Впереди у меня есть «API-шлюз», основанный на Spring-Boot, который действует как агрегированный сервис, взаимодействующий с каждым из небольших REST. услуги по HTTP для сбора некоторых данных или выполнения некоторых операций с использованием одного или нескольких сервисов REST. В настоящее время все работает на моей машине, поэтому все коммуникации проходят через localhost и указанный c порт указанной службы c.

То, чего я сейчас хочу достичь или попробовать, заключается в следующем:

  1. Текущий шлюз API должен использовать существующие службы REST с пружинной загрузкой в ​​качестве зависимости в файле POM
  2. Все еще должна быть возможность запуска каждого из небольших ОТДЫХ самостоятельно . Это означает, что я могу просто spring-boot:run, и служба предоставляет REST API под указанным c портом. Даже если он используется в качестве жесткой зависимости в моем API-шлюзе
  3. Каждый из небольших сервисов должен по-прежнему использовать свою собственную базу данных, поэтому не должно быть толстой базы данных, содержащей все данные.
  4. При запуске большого жирного API-шлюза со всеми небольшими службами в качестве зависимости, небольшие службы не должны отображаться на указанный порт c и не должны предоставлять несколько API REST. Я предполагаю, что этого не произойдет, поскольку службы не запускаются с использованием spring-boot:run, но я просто хотел указать на это.
  5. С архитектурной точки зрения: связь с зависимостью должна быть реализована с использованием Interface определение необходимых методов. Это должно упростить замену вызовов зависимости напрямую на отдельную работающую конечную точку REST, предоставляя другую реализацию этого интерфейса.
  6. Вопрос: Я предполагаю, что большой толстый API-шлюз не должен использовать уже существующую реализацию контроллера служб REST для вызова методов. Вместо этого, я полагаю, служба REST должна предоставлять отдельный API для прямой связи?

Каков наилучший способ достижения вышеуказанной информации и требований?

Заранее спасибо, и я надеюсь на вашу помощь и ваши идеи.

PS: Пожалуйста, сообщите мне, если это неправильная сеть обмена стека по этому вопросу.

...