Паттерн микросервисной апигатэви

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

Я читал о паттерне "api-gateway", где шлюз является сервис-оркестратором. Как я понимаю, API должен вызывать службы синхронно, чтобы обеспечить логический поток бизнеса. Это действительно уменьшает некоторые преимущества, которые дает реактивный.

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

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

Спасибо!

0 ответов

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

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

Другие вопросы по тегам