Когда я читал о микросервисах на этом сайте , я наткнулся на следующее утверждение. Что подразумевается под канонической схемой? Разве это не то же самое, что модель предметной области?
Шаблон архитектуры микросервисов также отклоняет другие части SOA, такие как концепция канонической схемы.
web-services
soa
microservices
nginx
Пунтер Вики
источник
источник
Ответы:
Заранее извиняюсь за то, что полагаюсь на комментарий @ArseniMourzenko, но как только я начал читать Википедию, я сразу понял, что означает каноническая схема .
Вот комментарий ОП, который фокусируется на реальных сомнениях
Некоторая модель данных да, но кажется, что статья ссылается на «общие» или «общие» модели данных между двумя или более сервисами.
Canonical схема представляет собой модель предназначена для сохранения услуг от в преобразованиях данных во время выполнения. Это также спасает вас от дублирования кода. Но вы также связываете свой сервис с внешней моделью данных. (См. Диаграммы на странице Википедии, ссылка на которую приведена выше)
Это своего рода «язык» между сервисами.
Похоже, что статья подчеркивает полную независимость РС от «экосистемы», в которой он живет.
Возьмем, к примеру, упоминание о ESB.
ESB обычно требует корпоративную модель данных (сообщения), которая будет общей для всех, кто подключен к шине.
Итак, возвращаясь к статье, кажется, что автор указывает на тот факт, что MS отказывается присоединяться к какой-либо внешней системе (и их ограничениям) .
источник
Микросервисы это все о тесной связи и слабой связи. Внутри микросервиса у вас тесная связь, но между микросервисами у вас слабая связь, и поэтому вы хотите избежать каких-либо общих схем или контрактов данных. Если вы обнаружите, что у вас есть микросервисы, выполняющие синхронные вызовы друг с другом таким образом, который требует, чтобы они использовали общую схему, это может указывать на то, что вы неправильно определили границы своих служб.
Микросервисы должны быть тесно выровнены с ограниченным контекстом, на языке доменного управления.
источник
If you find that you have microservices making synchronous calls
, Не обязательно асинхронные вызовы. Это может произойти и с асинхронными сообщениями ESB. Я думаю, что это сфокусировано на том факте, что он должен быть связан с общими схемами или контрактами данных. Я предполагаю, что в архитектуре MS следует избегать любой связи p2p между серверами. Связь должна происходить через приложения, а не через какой-либо внутренний (внутренний уровень обслуживания) или внешний (ESB, очередь и т. Д.)