Должен ли я использовать Spring Cloud Gateway или Ngnix для веб-приложения

Я создаю полную микросервисную архитектуру приложения на основе Spring Cloud Gateway в качестве Api Gateway, с серверными службами, RabbitMQ и т. д., как показано в ссылке на скриншот ниже, предложенный Spring. У меня также есть веб-приложение, написанное на Angular и SSO в виде Keycloak. Я основываю свое веб-приложение на Nginx.

https://spring.io/images/diagram-microservices-dark-4a2e5817aac093437f4f3b3a5be8be88.svg

Мой вопрос заключается в том, должен ли основной точкой входа быть Spring Cloud Gateway, за которым следует маршрутизация к веб-приложению, или, скорее, Nginx Angular, который делает запросы к Api Gateway и SSO как к отдельной сущности?


person Crovitz    schedule 24.03.2021    source источник
comment
Можете ли вы поделиться своим кодом?   -  person bsheps    schedule 24.03.2021
comment
Если вы используете пользовательский интерфейс Keycloak для аутентификации, вы можете пойти любым путем, но если вы полагаетесь на API-интерфейсы Keycloak, я бы предложил сделать шлюз Spring Cloud точкой входа только для серверных служб. Пользователи сначала обращаются к Nginx Angular, а для серверных API они направляются SCG.   -  person noob_nerd    schedule 10.04.2021
comment
Спасибо за ваш ответ. Раньше я использовал SCG в качестве сервера ресурсов, который использовал Keycloak API, но в настоящее время я думаю о том, чтобы меньше обращаться к шлюзу, чтобы ограничить запросы, создаваемые службами. Итак, я пытаюсь вызвать SSO непосредственно из внешнего интерфейса.   -  person Crovitz    schedule 11.04.2021


Ответы (1)


Я думаю, что мы могли бы многое узнать о Spring Cloud Gateway от Netflix Zuul, потому что он был создан (?) Zuul.

В случаях Zuul основной точкой входа является шлюз.

Статьи и слайды Zuul: https://github.com/Netflix/zuul

Сравнение производительности Zuul и Nginx: https://instea.sk/2015/04/netflix-zuul-vs-nginx-performance/

person 9dan    schedule 07.04.2021
comment
Во-первых, Зуул находится в режиме обслуживания. В настоящее время наступила эра реактивного программирования, Zuul использует Tomcat с блокирующими потоками, реальное сравнение приведено ниже: ссылка Я могу порекомендовать вам мыслить реактивно при создании эффективных решений. - person Crovitz; 09.04.2021