Я создал несколько микросервисов, которые потребляют несколько внешних сервисов. Немногие из этих внешних сервисов потребляются более чем 1 микросервисом, который я создал. Я построил разъемы для этих микросервисов в качестве проекта библиотеки и включил его в качестве зависимости во всех моих проектах микросервиса. Однако я читал, что вся логика для микросервисов должна быть самодостаточной, а дублирование логики в порядке. Если это так, рекомендуется ли мне определять эти разъемы в каждом микросервисе вместо того, чтобы иметь общую библиотеку?Добавление зависимостей к микросервисам
ответ
... вся логика для microservices должен быть самодостаточным и дублирование логики нормально
Я думаю, что это суть проблемы вы боретесь с. Действительно ли это утверждение истинно?
Быстрый поиск Google позже: http://www.simplicityitself.io/our%20team/2015/01/12/sharing-code-between-microservices.html
Эта статья говорит о точной вопрос, который мы можем теперь обрамляют в Каков соответствующий уровень повторного использования в microservice архитектуры?
Автор дает список причин, почему разработчики чувствуют необходимость совместного использования кода, упорядоченный от самого низкого до самого высокого с точки зрения сцепления и потери изоляции:
- использовать существующие технические возможности
- Совместное использование схем данных с использованием класса, например, в качестве обеспечения совместной схемы.
- Совместное использование источников данных, использование одной и той же базы данных несколькими службами.
Хотя этот перечень охватывает большинство причин, я хотел бы добавить еще одну важную причину совместного использования кода, который должен сделать с общей основой для быстрого Вставая из microservices, обычно называют Microservice Chassis узором.
Автор выходит на говорят:
Это крайне важно, чтобы придавить мотивацию для желающих кода акций, так как, к сожалению, нет правильного ответа на этот вопрос . Как и все остальное, это контекстуально.
Итак, все, что было сказано, следует ли централизовать ваши разъемы или нет?
Ну, где эти зависимости вписываются в наш список? И какую степень сцепления вы можете выдержать до того, как перестаете заниматься микросервисами, а вместо этого создайте монолит?
Ответы на непростые вопросы, но, надеюсь, это поможет вам в правильном завершении.
Большое спасибо, Том. Да, мне нужно подумать над этим.На данный момент я считаю, что совместная схема передачи данных с использованием библиотеки, по-видимому, является наилучшим подходом. Но я думаю, мне нужно подумать об этом, когда я ударил по любым вопросам. –
«Вся логика для микросервисов должна быть самодостаточной и дублирование логики в порядке» [0] | – dnault
@dnault - как насчет https://www.infoq.com/news/2015/01/microservices-sharing-code , Я согласен с вашими настроениями, однако было довольно легко найти сторонников вышеупомянутого заявления ... –