2017-09-12 2 views
0

J'ai un certain nombre de microservices qui gèrent leurs propres bases de données (mongodb, elastic, mysql) et chacun des microservices que je dois mettre en place une nouvelle connexion en permanence.Tous mes microservices ont leur propre base de données, devrais-je créer un microservice commun pour gérer les connexions?

Je pensais qu'il serait sage si je créais un autre microservice, qui pourrait gérer ces connexions pour les microservices, avant qu'ils ne démarrent.

Exemple: Mon passerelle API Microservice reçoit une demande de recherche, il puis appelle la recherche Microservice, qui, avant la recherche commence, appelle le miscroservice de configuration de base de données et retourne une connexion établie revenir, basé sur ce que Microservice appelé (dans ce cas - le microservice de recherche).

Serait-il préférable, si je viens de découvrir quelle connexion est nécessaire dans la passerelle API? Ou devrais-je simplement laisser la logique séparément dans chaque microservice.

+0

Comment passeriez-vous une "connexion établie"? –

+0

Hey @HenkHolterman, Je pensais que le microservice db pourrait tester pour voir si la connexion est ouverte, puis passer les paramètres nécessaires (type DB, nom DB, connexion, etc.) dans le corps standard json/xml retour au microservice a besoin de la connexion. Je suppose que le problème est que j'expose le DB d'un microservice à un autre. Considéreriez-vous si cela a des avantages du tout? Ou c'est juste tout le contraire :)? –

+0

On dirait que vous ajoutez encore une autre dépendance. Et cela pourrait rapidement devenir un goulot d'étranglement. –

Répondre

3

Vous allez casser l'encapsulation des microservices en supposant le type de persistance que chaque microservice utilise.

Chaque Microservice doit être libre d'utiliser tout type persistance qu'il veut ou changement quand il veut manière transparente, sans informer ou demander la permission aux autres microservices à ce sujet.

+0

Oui! Tant de personnes ont tort cette partie des microservices, vous ne devriez jamais intégrer la base de données. – CheeseFerret