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
Antwort
... 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.
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. –
- 1. Verwalten mehrerer Abhängigkeiten zwischen Microservices mit Maven
- 2. CMAKE: Abhängigkeiten von Abhängigkeiten automatisch hinzufügen
- 3. Hinzufügen eines Microservices zu WSO2 Identity Server als Komponente
- 4. Fehler beim Hinzufügen von Abhängigkeiten
- 5. Wie PyPi Abhängigkeiten zu DEB-Paket hinzufügen
- 6. Wie programmgesteuerte Abhängigkeiten zu Gradle-Konfiguration hinzufügen?
- 7. Auditing Microservices
- 8. Hinzufügen von .net DLL-Abhängigkeiten zu einem Projekt
- 9. Hinzufügen von Abhängigkeiten zu einem Scala-Projekt (sbt)
- 10. Hinzufügen von Abhängigkeiten zu einem benutzerdefinierten Gradle-Plugin
- 11. ember-cli Hinzufügen von Abhängigkeiten mit Bower
- 12. Clustering Microservices Komponenten
- 13. Server zu Server Kommunikation in Microservices
- 14. nuget Abhängigkeiten von Abhängigkeiten
- 15. Alternative zu iframe für Microservices ui Zusammensetzung
- 16. Microservices: Wie wird der Quellcode vieler Microservices gespeichert?
- 17. BDD und Microservices
- 18. Transaktionen in Microservices
- 19. Javascript-Abhängigkeiten wie Java-Abhängigkeiten in Maven 2 hinzufügen?
- 20. Microservices - RestTemplate UnknownHostException
- 21. Spring Cloud Microservices Speicherauslastung
- 22. Freigabe von Code und Schema zwischen Microservices
- 23. zentrale Einstellungen mit Microservices
- 24. Microservices und ERP
- 25. Sharing-Code zwischen Microservices
- 26. Pip: Abhängigkeiten von Abhängigkeiten installieren
- 27. Sicherheit zwischen Microservices
- 28. Wie können Sie externe Abhängigkeiten zu Bazel hinzufügen?
- 29. Hinzufügen eines nicht abgeschlossenen Java-Projekts zu SBT-Abhängigkeiten
- 30. Wie externe Abhängigkeiten (JAR-Datei) zu Android Studio hinzufügen?
"Alle Logik für Microservices sollte in sich geschlossen sein und Duplizierung der Logik ist in Ordnung" [Zitat benötigt] – dnault
@ 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 ... –