Переадресация http-запросов на основе данных из тела запроса - PullRequest
0 голосов
/ 11 октября 2018

У меня есть служба со многими методами контроллера.Моя задача - «разбить» этот сервис на микросервисы.

Сами микросервисы будут развернуты на других машинах.Перенаправление Nginx по местоположению.

Основная проблема заключается в том, что существует одно местоположение, http://mydomain/myservice/srv/data, которое принимает различные типы запросов.

И логика после вызывается на основе значения в поле в теле запроса.

Например, два запроса:

  • <request type="getname" val="1"/>
  • <request type="balance" val="1"/>

Первый запрос должен быть перенаправлен на http://mydomain/myservice1/data/name и второй http://mydomain/myservice2/data/balance

Вопрос : Существуют ли библиотеки для таких целей?

UPD : Я пишу простой jarна основе RouteLocator (весеннее облако);есть ли другой способ сделать это?Весеннее облако - это не та стека, с которой мы знакомы.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Я думаю, что подход прокси-запроса на основе различных типов запросов в теле не является хорошим способом для прокси.В конечном итоге URI должен отвечать за то, на какой запрос он отвечает, и на какой ответ он должен отвечать.

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

Подводя итог, можно сказать, что реализация будет выглядеть следующим образом:

  • Рефакторинг серверной логики для разных типов запросов к их собственным URI ресурсов
  • Переместить логику кудаотправить запрос клиенту, возможно, используя что-то вроде фабричного шаблона
0 голосов
/ 11 октября 2018
...