2015-06-28 4 views
4

Я собираюсь выставить несколько микросервисов (~ 20 на этом этапе), используя Spring Boot. Я буду создавать исполняемые жирные банки с помощью встроенного Tomcat. Исполняемая банка будет завернута в контейнер Docker и развернута в AWS.Spring Boot + Tomcat - решение для микросервисов

В моем случае 20 банок будут иметь 20 экземпляров tomcat, работающих одновременно. Я обеспокоен накладными расходами на запуск большого количества экземпляров tomcat на рабочем сервере. Является ли это серьезной проблемой?

Мне было интересно, если кто-то использовал что-то подобное в производстве и может поделиться своим опытом.

Любые предложения будут оценены.

Благодаря JP

+0

действительно ли это помогает? –

+0

Я думаю, это не отвечает на мой первоначальный вопрос, Извините. Я все еще не убежден, что накладные расходы на контейнер tomcat/servlet и весенние банки в каждом микросервисе вызовут какую-либо проблему по мере роста микросервисов. BTW мои артефакты около ~ 15-20MB –

+0

Привет @JPSingh, вы получили ответ, я также ищу то же самое. – Rudra

ответ

0

Вы можете попробовать развернуть все свои услуги (WebApps) в один или более экземпляров TOMCAT. Вы не можете включать Tomcat в военный файл. Пример конфигурации maven/spring вы можете найти here

0

В настоящее время мы используем AWS и Spring Cloud/Spring Boot. Наша позиция - это случаи, когда требуется больше ресурсов, чтобы получить свой экземпляр EC2. Службы, которые могут быть развернуты с использованием Docker, развертываются до Amazon ECS.

Все наши развертывания - это толстые банки с использованием встроенного Tomcat.

Не зная размер того, что вы вызываете в сервисе, этот ответ немного усложняется. Если вы беспокоитесь о накладных расходах Tomcat, почему вы используете эти сервисы в контейнерах Docker? Простота развертывания?

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

+0

Почему Docker? - Мы движемся к микросервисной архитектуре, где каждый микросервис может быть развернут/разработан независимо. У нас также установлена ​​установка CI/CD, которая ускоряет развертывание конвейера. Вы правы. Использование нескольких сервисов в одном коте не приведет нас туда. Так что это не вариант для нас. Что касается размера моих услуг, то текущие банки составляют около 20 МБ. На высоком уровне сервисы выставляют успокоительный json api, который разговаривает с устаревшей системой. Внутри микросервисов нет транзакций db/jms. –

+0

Причина, по которой мы перешли на докер, была экономией облачных сервисов. Мы можем развернуть больше контейнеров докеров в один экземпляр, который использует больше ресурсов для каждого экземпляра. Из вашего описания размера банки это примерно то же, что и у нас. По сути, все это барабан Spring Boot/Tomcat, развернутый как контейнер Docker для кластеров AWS ECS. DevOps/планирование для нас, безусловно, самая сложная часть. Примерно 600 микросервисов. Мы связали это с Spring OSS OSS/Netflix OSS. Дополнительным преимуществом Docker является гораздо более легкое тестирование в среде разработчиков. – code

+0

@code Даже простой микросервис занимает от 600 МБ до 1 ГБ ОЗУ, и мы обнаружили, что развертывание 7-8 микросервисов на одном большом экземпляре t2 также не оптимально. Как вы думаете, Докер поможет нам в этом сценарии? Если да, то как? В конечном итоге докеры также развертываются на экземпляре ec2, и они будут дополнительно дополнять требование к памяти, сравнивая чистую базовую микросервисную базу с простой пружиной. Я смотрю на оптимальное использование моего экземпляра ec2. – Netverse

Смежные вопросы