Микросервисы и транспорт с низкой задержкой - PullRequest
0 голосов
/ 04 января 2019

Мне известны только два популярных транспортных протокола в мире микросервисов: REST / HTTP и AMQP.

И я чувствую две проблемы с этим:

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

2) HTTP выглядит как не предназначенный для межсерверного протокола, но широко используется в этой роли.

Что вы думаете об этом и можете ли вы предложить какую-то альтернативу (поддерживаемую фреймворками, я имею в виду то, что мне не нужно писать с нуля)?

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Во-первых, пожалуйста, изолируйте темы архитектуры от тем реализации. Одна сторона - это архитектура, а другая - реализация. Архитектура микросервисов говорит о новой парадигме в SOA. Теперь, на этапе реализации, вы можете использовать несколько протоколов для реализации службы размера микросервиса. Вы можете использовать UDP, TCP, HTTP и т. Д. Протокол HTTP, широко используемый в микросервисах, где существуют определенные проблемы, такие как отсутствие состояния, это не обязательно означает, что все микросервисы на этапе реализации должны использовать HTTP. Они могут / могут использовать HTTP или любые другие транспортные протоколы, такие как UDP, или даже CoAP.

Ниже приведен ряд статей, посвященных микросервисам в проекте кода, вы можете читать и комментировать свои вопросы, если хотите.

https://www.codeproject.com/Articles/1264113/Dive-into-Microservices-Architecture-Part-I

https://www.codeproject.com/Articles/1264113/Dive-into-Microservices-Architecture-Part-II

https://www.codeproject.com/Articles/1264113/Dive-into-Microservices-Architecture-Part-III

0 голосов
/ 05 января 2019

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

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

Учитывая, что вы контролируете оба конца связи, ничто не мешает вам вкладывать больше усилий и создавать свой собственный двоичный протокол на основе сокета UDP или даже опускаться ниже на уровнях OSI. Например, Google использует QUIC и предлагает сделать его преемником http / 2. Так что http / 3 может стать намного более эффективным.

Или вы можете попытаться внедрить существующие стандарты, более оптимизированные для приложений с задержкой и даже в реальном времени. Один пример из промышленной области - profinet .

Много раз полезная нагрузка создает медленные соединения. JSON является отличным примером формата, который занимает много времени для десериализации / сериализации в больших количествах. И чтобы улучшить это, вы можете использовать другой транспортный формат, например плоские буферы (еще одно изобретение Google) из игрового домена.

В общем, если вы проведете некоторое исследование о том, как работает сеть в играх, вы найдете много интересных технологий.

...