Микросервисная архитектура Java

434
08 августа 2017, 14:23

Посредством чего или с помощью чего взаимодействует один микросервис с другим?

Answer 1

Стоит добавить, что поскольку каждый каноничный микросервис -- это отдельный процесс, то теоретически для взаимодействия сервисов может использоваться что угодно из списка вариантов межпроцессорного взаимодействия. И хотя большинство способов взаимодействия сводятся к HTTP и очереди сообщений, сервисы могут "взаимодействовать" хоть через файловую систему. Например, может существовать сервис, который мониторит таблицу БД и выполняет определенную задачу с новыми/обновленными записями.

получается суть микросервисной архитектуре - это создание множества rest-сервисов, каждый из которых выполняет только одну конкретную задачу?

Во-первых, просто сервисов. REST -- это уже деталь имплементации. К тому же, у сервиса вообще может не быть никакого API. Во-вторых, создание множества сервисов -- это, конечно же, способ достижения цели. А суть микросервисной архитектуры заключается в следовании принципу единой обязанности. И уже отсюда вытекает все остальное: способы реализации, плюсы и минусы.

Answer 2

Существует множество различных технологий взаимодействия одного микросервиса с другим. Сервисы могут использовать синхронные механизмы связи на основе запроса/ответа, такие как REST или Thrift на основе HTTP. В качестве альтернативы они могут использовать асинхронные коммуникационные механизмы на основе сообщений, такие как AMQP или STOMP. Существуют также различные форматы сообщений. Сервисы могут использовать удобочитаемые текстовые форматы, такие как JSON или XML. Кроме того, они могут использовать двоичный формат (который более эффективен), такой как Avro или Protocol Buffers.

READ ALSO
Библиотеки для работы с COM-портом

Библиотеки для работы с COM-портом

Нужно сделать примитивное общение с устройством через COM-портКакие есть вообще библиотеки для этого? Что ни нахожу в гугле - то пизанские...

334
Некорректный прием данных через COM-порт

Некорректный прием данных через COM-порт

Есть плата Adruino UnoС нее через Serial передаю в COM-порт данные( if(Serial

342
Как не потерять кэширование 1-го уровня Hibernate?

Как не потерять кэширование 1-го уровня Hibernate?

Кэш 1-го уровня у Hibernate храниться в сессии, и с ее закрытием теряются и все данные которые в нем былиВстает вопрос: как задизайнить свой DAO слой...

276
Не работает taglib в jsp страницах

Не работает taglib в jsp страницах

Добрый вечер! Использую java 14, Tomcat 4

337