REST хорошо подходит для микросервисов? - PullRequest
0 голосов
/ 01 июля 2018

Я изучаю архитектуру микросервисов через книги, блоги и т. Д.

Что я видел, так это то, что большинство людей внедряют микросервисы с использованием REST. Разве это не противоречиво?

Предполагается, что микросервисы разъединяют сервисы для достижения масштабируемости, но протокол связи REST является синхронным.

Так как же эти двое могут идти вместе?

Ответы [ 2 ]

0 голосов
/ 01 июля 2018

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

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

Наиболее распространенными, по-видимому, являются HTTP и AMQP (расширенный протокол очереди сообщений). Они оба служат разным целям.

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

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

Существует отличная электронная книга, которая подробно описывает эту тему. https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/ [.NET Microservices. Архитектура для контейнерных приложений .NET]

На этой странице вы найдете тему, которую вы обсуждаете https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/architect-microservice-container-applications/communication-in-microservice-architecture [Коммуникация в микросервисной архитектуре]

0 голосов
/ 01 июля 2018

Интерфейс REST спроектирован так, чтобы быть эффективным для передачи крупномасштабных гипермедиа-данных, оптимизируя его для общего случая Интернета, но в результате получая интерфейс, который не оптимален для других форм архитектурного взаимодействия. - Рой Филдинг, 2000

«Протокол связи REST является синхронным.»

Это не совсем верно, на нескольких уровнях.

Во-первых, отсутствует «протокол связи REST»; ОТДЫХ - это архитектурный стиль.

Гипертекстовый транспортный протокол , он же HTTP, - это прикладной протокол для гипертекстовых информационных систем. REST - это архитектурный стиль, веб - эталонная реализация.

Во-вторых, HTTP на самом деле не является синхронным. Поскольку в метаданных запроса нет общих корреляционных идентификаторов , клиент должен отслеживать порядок, в котором запросы отправлялись по данному соединению. См. RFC 7230, раздел 5.6 . Это просто сообщения.

Apache HttpCore Tutorial включает обсуждение неблокирующих HTTP-соединений.

...