Вопрос:

Есть ли связь между процессами Java в микросервисах?

java rest components microservices

45 просмотра

1 ответ

981 Репутация автора

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

Это в парадигме микросервисов? Или я слишком далеко?

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

Компоненты :

  • Интерфейс REST (с которым общается веб-приложение)
  • ToolBoxExecutor (с которым взаимодействует контроллер REST)
  • ToolSyncer (который «запускается» ToolBoxExectutor для обновления всех Git-репозиториев для инструментов)

Эти три компонента не имеют большой нагрузки логики - но я все еще хочу, чтобы они НЕ действовали как Сервисы Контроллера REST - только ради "микросервисов". Я хочу, чтобы все они были тремя независимыми Java-приложениями.

Я на правильном пути?

Автор: xetra11 Источник Размещён: 02.02.2017 04:02

Ответы (1)


1 плюс

96249 Репутация автора

Решение

Высокий уровень

Я на правильном пути?

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

Анализ по отношению к микросервисам

Что касается того, действительно ли вы создаете что-то в стиле микросервисов (для чего бы это ни стоило для вас), давайте посмотрим на характеристики микросервисов, как описано на martinfowler.com :

Компонентация через Сервисы

Насколько я могу судить по тому, что вы представили, вы действительно делаете это, но все, что мне действительно нужно, это то, что у вас есть части, работающие в нескольких разных, взаимодействующих процессах. Это не все, что нужно для того, чтобы быть компонентом или работать как услуга. Каждый компонент должен иметь четко определенную работу и четко определенный интерфейс, максимально независимый от характеристик реализации. Для взаимодействия компоненты должны полагаться только на определенные интерфейсы друг друга.

Организовано вокруг бизнес-возможностей

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

Продукты не проекты

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

Умные конечные точки и тупые трубы

Неясно, имеет ли ваш дизайн эту характеристику, но это кажется вероятным, учитывая природу компонентов, как вы их определяете.

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

Децентрализованное управление

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

Децентрализованное управление данными

Неясно, есть ли у ваших планов эта характеристика, или даже в какой степени это относится к вам.

Автоматизация инфраструктуры

Опять неясно, насколько хорошо это характеризует ваши намерения и в какой степени это даже в вашей сфере интересов.

Дизайн на провал

Вы ничего не сказали, относящиеся к этой характеристике.

Эволюционный дизайн

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

В целом

То, что вы описываете, похоже, не соответствует масштабу, к которому относится термин «архитектура микросервисов», как описывает его Мартин Фаулер. Конечно, есть некоторые аспекты этой парадигмы, которые вы можете применять в своих масштабах; некоторые из них, похоже, применимы, других - нет, других - я не могу оценить в отношении вашего обзора архитектуры.

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

Автор: John Bollinger Размещён: 02.02.2017 04:59
Вопросы из категории :
32x32