Должна ли существовать только одна функция Spring Cloud в приложении Spring Boot? - PullRequest
0 голосов
/ 05 мая 2018

Spring Cloud Functions предоставляет возможности Spring, такие как автоконфигурация, внедрение зависимостей, метрики и т. Д., Но они кажутся достаточно тяжелыми по сравнению с простой лямбда-функцией AWS в Java.

Время запуска намного дольше и т. Д. Итак, мне было любопытно, заключалась ли идея в том, чтобы в приложении Spring Boot содержалось более одной функции, содержащей Spring Cloud Functions, или они должны быть одной функцией на приложение?

Два примера проектов, чтобы продемонстрировать разницу во времени запуска: - https://github.com/marcthomas2013/simple-aws-spring-cloud-function - https://github.com/marcthomas2013/simple-aws-lambda

Развертывание обоих этих проектов в качестве функций лямбда-AWS и оставление деталей среды (памяти и т. Д.) Одинаковыми, за исключением времени ожидания для функции Spring Cloud, необходимо увеличить до 30-45 секунд.

1 Ответ

0 голосов
/ 16 августа 2018

Я рассматриваю эту сделку с собой. Быстрая разминка против Весенней Вселенной.

Проект SpringBoot инициализируется (намного) дольше, потому что Spring делает много работы для начала. Преимущество, конечно, в том, что теперь у вас есть возможности и удобство Spring вместо того, чтобы все реализовывать самостоятельно.

Чего мне не хватает, так это способа развернуть полный набор функций в одной Lambda, которые могут обслуживать множество разных запросов. Я планирую реализовать своего рода шаблон диспетчера, где я регистрирую только 1 функцию, которая получает событие. Затем он анализирует событие, отправляет его нужному обработчику в той же лямбде для дальнейшей обработки. Таким образом, у меня намного меньше зарегистрированных лямбд (1 на приложение против 1 на функцию). Время разогрева не является большой проблемой, так как существуют разные способы предварительного разогрева и поддержания тепла в лямбдах.

Поэтому я бы пошел с SpringBoot, Многофункциональная лямбда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...