Микросервисная связь по HTTP для внутреннего трафика и красивых URL - PullRequest
0 голосов
/ 31 января 2019

У меня есть два микросервиса и веб-сайт, на котором я размещаю все в одном окне в IIS, например:

Веб-сайт по умолчанию

  1. Microservice1 - GET / api / values ​​-Требуется токен JWT
  2. Microservice2 - GET / api / values ​​/ 1 / objects - Требуется токен JWT
  3. Веб-сайт

Требования:

  1. Связь между микросервисами и микросервисами должна осуществляться через HTTP.
  2. Связь между веб-сайтами и микросервисами должна осуществляться через HTTPS.
  3. Клиент (не веб-сайт) для общедоступного API должен иметь ограниченную скорость.Но трафик с веб-сайта на микросервис не должен ограничиваться скоростью.

Как я могу это сделать?Я знаю об ограничении скорости IIS, ARR и перезаписи URL-адресов, но как мне все это объединить?Существует ли типичная модель для такого типа поведения в микросервисах, размещенных на одной и той же коробке?

1 Ответ

0 голосов
/ 31 января 2019

Шаблон

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

Ограничение скорости

Клиенты всегда получают доступ к общедоступному домену вашего приложения из внешней сети, в которой контролируются тарифы.В то время как ваши сервисы должны обмениваться данными между собой по локальным сетям, таким как IP-адрес или имя сервиса (имя контейнера), и здесь нет никакого контроля.И, конечно, локальная связь намного быстрее, чем внешняя.

SSL

Поскольку у вас есть центральный пункт для обработки запросов, вы можете установить SSL в этомэкземпляр, и он будет прослушивать HTTPS-вызовы, передавая их во внутренние службы.Если все они находятся на одном сервере, их довольно легко настроить и заставить работать вместе, используя сеть докеров .

Gateway API

AsAPI-шлюз, который я настоятельно рекомендую вам посмотреть Kong .Он прост в использовании, действительно хорошо работает и может решить большинство ваших проблем, даже для сложных сценариев.

Комплексные сценарии

Просто для общего обзораВ случае сложных сценариев и масштабируемости вам потребуется обнаружение службы , которое централизовало бы доступность и распределение запросов через службы.Например: при доступе к abc.example.com он может перенаправить запрос на три разных экземпляра службы (10.0.0.1, 10.0.0.2, 10.0.0.3).Хороший инструмент для работы с ним - Консул .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...