LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

Единственное преимущество микросервисов — можно писать разные сервисы на разных языках. Но учитывая, что JVM для серверов это лучшая платформа, это преимущество никому не нужно. Все остальные преимущества микросервисов присущи любому приложению. Из недостатков:

1. Чаще всего нет чётко определённых интерфейсов, ибо используется всякое REST-оподобное (подобное, потому что про REST больше говорят, чем знают) мессиво. Если вдруг используются Web Services, то очень много усилий приходится прикладывать для создания этих интерфейсов.

2. Скорость просто ужасающая. Вызов метода это наносекунды. Ну может микросекунды, если накрутить там всяких интерцепторов. Вызов REST-а это миллисекунды. В тысячи-миллионы раз медленней. Чаще всего отсюда и вылезает надобность в кластерах, лол.

3. Общее неудобство разработки, развёртывания тестового окружения и тд.

4. Безумное дублирование кода, ибо проще скопипастить, чем выносить чего-то в общую либу.

5. Всё же в определённый момент начинают выносить и получают Dependency Hell. Ибо разрабатывать с бинарной совместимостью умеет только Самый Главный Программист, все остальные фигачат как бог на душу положит, как следствие — у каждого «микросервиса» свои версии зависимостей, работает куча класслоадеров, течёт память вовсю, давно исправленные баги никогда не дают о себе забыть и прочие прелести безумного бардака.

Исходная версия Legioner, :

Единственное преимущество микросервисов — можно писать разные сервисы на разных языках. Но учитывая, что JVM для серверов это лучшая платформа, это преимущество никому не нужно. Все остальные преимущества микросервисов присущи любому приложению. Из недостатков:

1. Чаще всего нет чётко определённых интерфейсов, ибо используется всякое REST-оподобное (подобное, потому что про REST больше говорят, чем знают) мессиво. Если вдруг используются Web Services, то очень много усилий приходится прикладывать для создания этих интерфейсов.

2. Скорость просто ужасающая. Вызов метода это наносекунды. Ну может микросекунды, если накрутить там всяких интерцепторов. Вызов REST-а это миллисекунды. В тысячи-миллионы раз медленней.

3. Общее неудобство разработки, развёртывания тестового окружения и тд.

4. Безумное дублирование кода, ибо проще скопипастить, чем выносить чего-то в общую либу.

5. Всё же в определённый момент начинают выносить и получают Dependency Hell. Ибо разрабатывать с бинарной совместимостью умеет только Самый Главный Программист, все остальные фигачат как бог на душу положит, как следствие — у каждого «микросервиса» свои версии зависимостей, работает куча класслоадеров, течёт память вовсю, давно исправленные баги никогда не дают о себе забыть и прочие прелести безумного бардака.