Lorsque je lisais sur les microservices sur ce site , je suis tombé sur la déclaration ci-dessous. Qu'entend-on par schéma canonique? N'est-ce pas la même chose que le modèle de domaine?
Le modèle d'architecture de microservices rejette également d'autres parties de SOA, telles que le concept d'un schéma canonique.
web-services
soa
microservices
nginx
Punter Vicky
la source
la source
Réponses:
Je m'excuse d'avance de m'être appuyé sur le commentaire @ArseniMourzenko, mais une fois que j'ai commencé à lire Wikipédia, j'ai immédiatement compris ce que signifie le schéma canonique .
Voici le commentaire d'OP qui se concentre sur le vrai doute
Certains modèles de données oui, mais il semble que l'article se réfère à des modèles de données "partagés" ou "communs" entre 2 services ou plus.
Le schéma canonique est un modèle destiné à enregistrer des services dans les transformations de données d'exécution. Il vous évite également la duplication de code. Mais vous couplez également votre service à un modèle de données externe. (Voir les diagrammes sur la page de Wikipédia liée ci-dessus)
C'est une sorte de «langage» commun aux services.
Il semble donc que l'article insiste sur l'indépendance totale des États membres par rapport à l '«écosystème» où ils vivent.
Prenons par exemple la mention qu'il fait à ESB.
ESB exige généralement un modèle de données d'entreprise (messages) qui sera commun à toutes les personnes connectées au bus.
Donc, revenons à l'article, semble que l'auteur pointe sur le fait que MS refuse d'être attaché à tout système externe (et leurs contraintes) .
la source
Les microservices sont une question de cohésion étroite et de couplage lâche. Au sein d'un microservice, vous avez une cohésion étroite, mais entre les microservices, vous avez un couplage lâche et vous voulez donc éviter les schémas partagés ou les contrats de données. Si vous constatez que des microservices effectuent des appels synchrones entre eux d'une manière qui exige qu'ils partagent un schéma commun, cela peut indiquer que vous avez mal défini vos limites de service.
Les microservices doivent être étroitement alignés sur les contextes délimités, dans le langage de conception pilotée par domaine.
la source
If you find that you have microservices making synchronous calls
. Pas nécessairement des appels asynchrones. Cela peut également arriver avec des messages asynchrones ESB. Je pense que cela se concentre sur le fait d'être couplé à des schémas partagés ou des contrats de données. Je suppose que dans l'architecture MS, il convient d'éviter toute communication p2p entre les services. La communication devrait se faire via des applications au lieu de toute couche interne (couche de service interne) ou externe (ESB, file d'attente, etc.)