Шлюз API против серверной части для внешнего интерфейса (BFF): варианты использования, сходства и различия
16 декабря 2022 г.Всем привет. В этой статье мы рассмотрим, что такое шлюз API и как он используется для связи клиент-сервер в микросервисах . >архитектура. Мы также увидим преимущества и недостатки шаблона шлюза API. Затем мы рассмотрим шаблон под названием Backend for Front End, который является вариантом шаблона шлюза API, и завершим статью рассмотрением случаев, когда нам нужен любой из этих методов.
Приступим.
Шлюз API
Шлюз API — это сервер, который выполняет множество функций в одном месте для взаимодействия клиентов. Он также работает как обратный прокси-сервер между вашими клиентскими приложениями и внутренней архитектурой микросервисов
.Может быть несколько клиентов, которые вызывают API-интерфейсы сервера, а шлюз API — это компонент, который направляет запросы в соответствующую микрослужбу, а затем получает ответ и отправляет его клиенту. Он управляет всеми сквозными функциями, такими как Безопасность, ведение журналов, кэширование и т. д., в одном месте, вместо того чтобы реализовывать эти функции в каждом отдельном микросервисе. Кроме того, он может консолидировать и агрегировать данные для объединения нескольких микросервисов, используя единую конечную точку для связи клиентов.
До появления архитектуры микросервисов в большинстве систем использовался шаблон Monolith, и мы могли даже решать сквозные задачи на одном или нескольких серверах. Но с микросервисами мы не можем позволить себе решать сквозные проблемы в каждом из микросервисов, которые замедлят работу с большим объемом памяти, снижающим производительность системы.
Бэкенд для внешнего интерфейса
Мы обсудили шлюз API. Этот подход хорош, если у нас есть один клиент в Интернете или на мобильном устройстве. Если наше приложение используется несколькими клиентами, такими как веб, мобильные устройства, IoT и т. д., не рекомендуется использовать один шлюз API для всех типов клиентов. Этот процесс быстро усложнится и может раздуть службу API Gateway, превратив ее в единую службу Monolith.
Лучший подход для этого типа сценария — использовать отдельный шлюз API для каждого типа клиента. Этот архитектурный шаблон называется шаблоном Backend for FrontEnd (BFF) и стал модным словечком.
Шаблон BFF — это архитектурная парадигма, вариант шаблона шлюза API, который включает в себя несколько серверных частей, предназначенных для удовлетворения требований конкретных интерфейсных приложений, таких как настольные, браузерные и собственные мобильные приложения, устройства IoT. и т. д.
Также опубликовано здесь
Оригинал