2016-07-20 15 views
2

Ich habe einige Microservices gebaut, die eine Reihe von externen Diensten verbrauchen. Nur wenige dieser externen Dienste werden von mehr als einem von mir gebauten Microservice genutzt. Ich habe die Connectors zu diesen Microservices als ein Bibliotheksprojekt erstellt und habe es als eine Abhängigkeit in alle meine Microservice-Projekte aufgenommen. Ich lese jedoch, dass die gesamte Logik für Microservices in sich geschlossen sein sollte und die Duplizierung der Logik in Ordnung ist. Wenn dies der Fall ist, wird es mir empfohlen, diese Konnektoren in jedem Mikrosystem zu definieren, anstatt eine gemeinsame Bibliothek zu haben?Hinzufügen von Abhängigkeiten zu Microservices

+1

"Alle Logik für Microservices sollte in sich geschlossen sein und Duplizierung der Logik ist in Ordnung" [Zitat benötigt] – dnault

+0

@ Dnault - wie über https://www.infoq.com/news/2015/01/microservices-sharing-code . Ich stimme Ihrer Meinung zu, aber es war ziemlich einfach, Befürworter der obigen Aussage zu finden ... –

Antwort

1

... alle Logik für Microservices müssen umluft und Doppel Logik ist ok

Ich denke, das der Kern des Problems ist, dass Sie mit zu kämpfen haben. Ist diese Aussage tatsächlich wahr?

Eine schnelle Google-Suche später: http://www.simplicityitself.io/our%20team/2015/01/12/sharing-code-between-microservices.html

Dieser Artikel spricht über diese genaue Frage, die wir heute als Rahmen Was ist die angemessene Höhe der Wiederverwendung in Micro Architektur?

Der Autor liefert eine Liste der Gründe, warum die Entwickler das Bedürfnis verspüren, Code zu teilen, vom niedrigsten zum höchsten geordnet in Bezug auf die Kupplung und den Verlust der Isolation:

  • Nutzen Sie vorhandene technische Funktionalität
  • Freigeben von Datenschemas, z. B. Verwenden einer Klasse als Erzwingung eines gemeinsamen Schemas.
  • Gemeinsame Nutzung von Datenquellen, Verwendung derselben Datenbank durch mehrere Dienste.

Obwohl diese Liste die meisten Gründe abdeckt, würde ich einen weiteren wichtigen Grund, fügen Sie Code zu teilen, die mit einem gemeinsamen Rahmen für die schnelle Aufstehen von Microservices zu tun ist, allgemein die Microservice Chassis Muster genannt.

Der Autor geht auf die sagen:

Es ist von größter Bedeutung, die Motivation zu Aktie Code für den Wunsch festzunageln, wie leider gibt es keine richtige Antwort auf diese Frage . Wie alles andere ist es kontextabhängig.

Also, all das gesagt, sollten Sie Ihre Anschlüsse zentralisieren oder nicht?

Nun, wo passen diese Abhängigkeiten in unsere Liste? Und welchen Grad an Kopplung können Sie aushalten, bevor Sie keine Microservices mehr machen, sondern stattdessen einen Monolith bauen?

Diese Fragen sind nicht einfach zu beantworten, aber hoffentlich hilft Ihnen das, zu den richtigen Schlussfolgerungen zu gelangen.

+0

Vielen Dank, Tom. Ja, ich muss darüber nachdenken.Für jetzt glaube ich, das Teilen des Datenschemas der Verbindungsstücke unter Verwendung einer Bibliothek scheint der beste Ansatz zu sein. Aber ich denke, ich muss darüber nachdenken, wenn ich irgendwelche Probleme habe. –

Verwandte Themen