2015-12-23 3 views
4

Я разрабатываю приложение на основе microservice architecture. Здесь каждый service является независимо развертываемым play-scala application, выставляя rest apis. Я хочу реализовать Api gateway поверх этих сервисов для отображения входящих запросов. Я следую описанной здесь архитектуре: Building MicroservicesApi gateway или No Api Gateway

Существует очень мало проектов со значительной зрелостью, основанных на архитектуре микросервиса. Один из них - Reactive Microservices. Но этот проект не использует api gateway pattern и, кажется, следует за Anti Pattern. Для этого проекта, открытого для этого проекта, существует недостающий Api Gateway. Участники здесь заявляют, что они не следовали api gateway pattern, потому что он риск single-point of failure.

Это меняющееся мнение очень сбивает с толку. Итак, я ищу предложения о том, должен ли я использовать Api Gateway или нет. What is the right practice here ?

+0

Привет @oblivion, не могли бы вы поделиться тем, что вы взяли? –

ответ

1

Шлюз API не вводит ни одной точки отказа, как это делает балансировщик нагрузки. Любой серьезный шлюз API должен работать в режиме высокой готовности, удаляя единственную точку отказа.

Шлюз API поощряет хорошую документацию & планирование внутри команд. Некоторые API-шлюзы позволяют вам импортировать спецификации Swagger https://swagger.io/, чтобы создать API.

Некоторые шлюзы позволяют создавать виртуальные конечные точки для измельчения ответов целевой цели. Таким образом, если ваш сервис пока недоступен, вы все равно можете его кодировать и переключиться на целевые объекты, когда будете готовы.

API-шлюзы API должны иметь возможность объединить балансировку нагрузки с вашими восходящими целями, отрицая необходимость добавления специального балансировочного устройства. Вы также можете настроить шлюз для периодического попадания в конечную точку healthcheck и автоматического удаления целей из LB, если служба недоступна.

Шлюзы будут обрабатывать auth для вас. Будь то через JWT, Oauth, Simple, Open и т. Д. Ваши разработчики могут сосредоточиться на создании своих микросервисов. Ваши микросервисы могут быть микро. Шлюз будет сидеть на краю инфраструктуры и управлять безопасностью для вас.