указание событий в виде файлов для использования в основном проекте, а не в сервисном проекте - PullRequest
0 голосов
/ 25 мая 2020

В моем решении у меня есть 3 проекта

MyProject.Core
MyProject.Services.DataImporter
Myproject.Services.Cars

Оба проекта DataImporter и Cars ссылаются на проект MyProject.Core. У меня есть событие (DataImportFinishedEvent), инициированное службой DataImporter. Services.Cars подписан на это событие и, возможно, на другие услуги позже. При моем текущем подходе у меня есть это событие (DataImportFinishedEvent) как файл, созданный в обеих службах.

Поскольку обе службы ссылаются на проект Core, следует ли мне переместить это событие в проект Core? При этом файл будет находиться только в одном месте. Это хорошая практика использования микросервисов?

1 Ответ

1 голос
/ 25 мая 2020

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...