Зачем нам использовать микросервисы, если требуется код с меньшей задержкой?

В монолите нам просто нужно либо вызвать функцию, либо вызвать метод, в отличие от взаимодействия между процессами. Может ли кто-нибудь, знакомый с архитектурой микросервисов, понять причины, по которым можно использовать микросервисы для разработки приложений с малой задержкой?

Я думаю, что фреймворк Chronicle утверждает, что вы можете разрабатывать продукты на основе микросервисов и использовать очереди хроники для связи, не вызывая задержек сетевого перехода.

У микросервисов задержка не снижается. Вы всегда будете вводить дополнительные сетевые накладные расходы, когда требуется связь между соответствующими службами.

shinjw 17.08.2018 08:27

Микросервисы могут иметь низкую задержку. Взгляните на реактивную архитектуру.

Apurva Singh 17.08.2018 08:27

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

shinjw 17.08.2018 08:29

@shinjw - Я полностью понимаю преимущества микросервисов по сравнению с монолитом. Мой вопрос касается его использования в приложениях с низкой задержкой.

The Roy 17.08.2018 08:30

Реактивная архитектура @ApurvaSingh не является синонимом низкой задержки

shinjw 17.08.2018 08:31

Во-вторых ... учитывая, что все ваши услуги находятся в одной сети. Накладные расходы сети будут номинальными (~ 10-50 мс). Хотя большое количество болтовни может вызвать потенциальное замедление. Но вы также захотите принять во внимание тот факт, что у вас может быть множество других сервисов, доступных для выполнения той же работы.

shinjw 17.08.2018 08:41

@shinjw Действительно, реактивный режим предназначен для малой задержки. Другой цели нет. Архитектура / программирование на основе push с использованием веб-сокетов, обмен сообщениями, кэширование, неблокирующий ввод-вывод с использованием обратных вызовов функциональных комбинаторов - все это часть уменьшения задержки. >> Отзывчивость << - центральный компонент реактивной архитектуры.

Apurva Singh 17.08.2018 08:45
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
7
199
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прежде всего, этот комментарий полностью верен: микросервисы сами по себе не помогают с задержкой. В идеале они только (ну, в основном) общаются с другими сервисами, используя их как сервис, таким образом добавляя потенциальный штраф для сетевых / межпроцессных вызовов.

Но важно понимать: идея не в том, что микросервис зависит от 15 различных сервисов, которые необходимы ему для выполнения своей работы. Вам лучше смотреть на них как на независимые единицы, которыми являются разработан, чтобы разрешить горизонтальное масштабирование (просто добавляя «больше» экземпляров).

Следовательно, ключевым элементом является фактическое определение микросервиса архитектура. Простое превращение монолита в распределенную систему сервисов при сохранении ненужной связи не приведет к этому.

Горизонтальное масштабирование - ключ к успеху. Я бы выделил это слово

shinjw 17.08.2018 08:32

Ну .. Горизонтальное масштабирование, пока не возникнет узкое место в базе данных

shinjw 17.08.2018 08:42

@shinjw Простое нанесение на бутылки этикеток "микросервисы" не меняет того факта, что бутылки имеют горлышки ;-)

GhostCat 17.08.2018 08:45

Другие вопросы по теме