Правильно ли использовать прямые подключения к микросервисам параллельно паттерну BFF?

BFF - Выкройка Back For Front. Шаблон BFF означает, что у нас есть шлюз API для каждого клиента. BFF на этом этапе может быть узким местом для некоторых микросервисов.

  1. Может ли один клиент иметь несколько BFF (шлюзов)?

  2. Если у нас есть один из клиентов, у которого есть BFF, но также есть прямое соединение с некоторыми дополнительными микросервисами для этого клиента ... правильно ли называть BFF как BFF, или это просто какой-то шлюз или что-то совсем другое?


person i.Nemiro    schedule 14.01.2020    source источник


Ответы (1)


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

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

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

person JArgente    schedule 14.01.2020
comment
Я вижу только одну проблему - BFF станет узким местом, он будет пропускать все запросы через себя, и я думаю, что это может стать проблемой в будущем. Итак, я хочу работать с некоторыми сложными микросервисами без BFF в качестве шлюза. - person i.Nemiro; 15.01.2020
comment
Поскольку BFF задуман как шлюз, как вы говорите, без состояния, вы можете масштабировать его в соответствии с количеством экземпляров, необходимых для удовлетворения спроса на трафик. - person JArgente; 15.01.2020