2017-03-09 2 views
0

Je suis tombé sur l'architecture de microservices pour une application de commerce électronique où chaque table possède son propre micro service avec des opérations CRUD (quelque chose comme un client de repos pour chaque table). Maintenant, je pense à combiner et à les modéliser autour des domaines d'affaires, avant que je voulais savoir si quelqu'un a rencontré une telle situation et est-ce l'architecture ou non. Toutes les suggestions seront très utiles. Merci.Microservices Par table DB

+1

Chaque Microservice doit avoir une table séparée et la communication inter-services se fait throught le réseau . Ils ne doivent pas partager la même persistance. En savoir plus ici: https://www.amazon.com/Building-Microservices-Sam-Newman/dp/1491950358/ref=pd_sim_14_29?ie=UTF8&dpID=5156gHBSxaL&dpSrc=sims&preST=_AC_UL160_SR122%2C160_&refRID=0081XVQGTK2AQ54GQ21P –

+0

Merci Constantin pour la réponse que je Je suis absolument d'accord avec vous que microservice doit cacher son implémentation et sa base de données, mais dans ce cas, pour chaque table, il y a un microservice séparé. Par exemple pour la table A ils ont MicroserviceA, pour B microserviceB et le même pour chaque table, combien de tables y a-t-il autant de microservices. –

Répondre

2

Vous mélangez différentes choses sans rapport.

(micro) services sont des entités logiques qui effectuent une tâche spécifique. ils communiquent avec d'autres services pour effectuer une tâche de plus grande envergure.

Les tables/CRUD/SQL/NO-SQL proviennent d'un niveau totalement différent. c'est où les données sont enregistrées et comment il est accédé.

Il est vrai que les services utilisent SQL et ont des tables. C'est aussi probablement une bonne idée d'avoir des tables séparées pour chaque service. J'irais même jusqu'à dire que si 2 services utilisent directement la même table, vous êtes probablement confronté à un problème de conception.

mais vous ne pouvez pas assimiler les services aux tables, conceptuellement, ils appartiennent à des mondes différents.

1

Chaque microservice doit avoir son propre ensemble de tables SQL auxquelles aucun autre microservice n'a accès. Mais avoir un microservice par table SQL et que chaque microservice ne supporte que les opérations CRUD est généralement un anti-pattern: il transforme un puissant SGBD et langage de requête en un simple gestionnaire d'enregistrement: pas de transactions inter-tables, jointures, filtrage, tri, pagination

1

Les microservices sont des blocs logiques pour n'importe quelle application, les combiner au niveau de sql n'a aucun sens.

Par exemple: considérons que vous créez un service de commande, ce qui permet au client de passer commande.

Maintenant, une commande contient aussi des articles de commande et peut avoir une référence d'objet client, pour tout cela vous pourriez finir par créer plusieurs tables. Donc, ne pense pas que la table sql et microservices ensemble

Si vous avez encore des doutes affichent une question plus exacte, vous aideront :)