6

В моей компании мы планируем перенести наше внутреннее решение, которое является огромным монолитом, в более сексуальную архитектуру микросервисов.Ищете технологию API Gateway, которая вызывает несколько микросервисов

До сих пор мы сравнили многие технологии, и мы, вероятно, будем использовать инфраструктуру AWS с использованием контейнеров AWS EC2 (ECS). Наши микросервисы будут завернуты в контейнеры Docker.

Мы уже развернули контейнеры и настроили автомасштабирование и балансировку нагрузки. Все отлично работает.

Однако мы ищем технологию API Gateway, которая позволяет нам вызывать несколько микросервисов только с одним запросом для клиента.

Идея заключается в том, чтобы разработать архитектуру, которая выглядит как Netflix один: http://techblog.netflix.com/2013/01/optimizing-netflix-api.html

Например:

Если клиент (веб-сайт) хочет, чтобы принести тележку клиента. Он отправит запрос Get в API.

Во-первых, я хотел бы, что наш шлюз называют «пользователь» microservice, который будет возвращать информацию пользователя и список продукта ид, что его корзина содержит:

{ 
    "name": "john", 
    ...., 
    "cart": [1,2,3] 
} 

Затем, непосредственно не реагирует на клиент, шлюз будет называть «продукт» микросервисом для гидратации Json с информацией о каждом продукте.

{ 
    "name": "john", 
    ...., 
    "cart": [ 
     {"id": 1, "name": "Iphone", ...}, 
     {"id": 2, "name": "Ipad", ...}, 
     {"id": 3, "name": "Ipod", ...} 
    ] 
} 

Итак, мой вопрос: знаете ли вы, что хорошая технология, которая могла бы выполнить эту работу?

+0

вы можете проверить статью, которую я написал, она говорит о шлюзах API, а также о том, что вам нужно знать о создании микросервисов: https://cloudncode.blog/2016/07/22/msa-getting -started/(отказ от ответственности: это ссылка на мой блог) –

ответ

2

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