2016-12-01 6 views
0

Eine zeitlang suchte ich nach einer schnellen und einfachen Lösung für ein Microservice-Framework. Ich bin ziemlich neu bei allen Lightbend Produkten & Scala, aber da es sehr interessant aussieht, habe ich mich entschieden, es zu versuchen.Simple Microservice framework

paar Fragen:

1) Ich verstehe nicht, warum es eine Notwendigkeit für den neuen Rahmen ist Lagom?

Wenn play mir die selbe Lösung geben kann (um als Microservice zu dienen), warum braucht man dann ein anderes Framework?

2) Mit dem Spiel gelingt es mir sehr schnell ein "Hello World" -Projekt zu erstellen und auch der Einsatz war sehr einfach und unkompliziert (via dist).

Ich mag die Tatsache, dass ich alle in einem ZIP zusammenführen und über Skript ausführen kann. In Lagom von dem, was ich verstehe, muss ich ConductR verwenden.

Für meine aktuellen Bedürfnisse sieht es aus wie ein großer Overhead. Gibt es einen einfachen Grund, wie man es im Spiel einsetzen kann?

Vielen Dank alle

Antwort

1

Lagom ist auf der Oberseite von Play gebaut. Während es sich bei Play um ein allgemeines (asynchrones) Web-Framework handelt, besteht das spezifischere Ziel von Lagom darin, einige Tools/Meinungen hinzuzufügen, die sich auf die Bereitstellung Ihrer App als Microservices konzentrieren.

Ein paar Beispiele, die Lagom sieht vor, dass hilft Ihnen, eine Microservices Architektur realisieren (das Spiel nicht): -

Persistenz

Eine Sache, die es zum Beispiel fügt hinzu, ist eine API für CQRS -basierte Persistenz auf dem Persistenzunterstützung Play bietet zur Zeit - diese (wenn Sie nicht wissen) ein Muster ist, das Sie durch die Entkopplung von Abfragen und Befehle erkennen, eine Microservices Architektur hilft.

Container Orchestrierung

Angenommen, Sie haben eine Play-Anwendung, die 25 verschiedene Microservices hat - was für sagen wir sogar eine relativ kleine Unternehmensanwendung wahrscheinlich eine konservative Zahl ist - wie Sie die Bereitstellung/Orchestrierung aller verwalten diese JVMs? Well Container sind der letzte Schrei. Wie verwalten Sie all diese Container? ConductR ist ein Werkzeug, das den Schmerz von dieser Aufgabe ablenkt, und Lagom bietet Ihnen Integrations-Tools für ConductR, um es Ihnen leichter zu machen, es mit Ihrem Lagom-Projekt zu verwenden - etwas, das Sie nicht selbst mit Play erhalten.

Ich konnte immer noch dieses Ziel zu erreichen mit Play

Ok, es gibt eine Menge von SBT-Module, die Sie in Ihrem Play-Projekt verwenden könnten Sie die gleiche Sache erkennen zu helfen, aber dann müssen Sie entscheiden, welche Tools Sie benötigen Finden Sie heraus, welche der vielen verfügbaren Module für Ihr Projekt geeignet sind, konfigurieren und verdrahten Sie sie nach Bedarf - dies ist eines der Ziele von Lagom -, um diese Entscheidungen und Konfigurationsaufgaben von Ihnen wegzunehmen, damit Sie sich auf das Schreiben Ihrer Anwendungslogik konzentrieren können.

Wenn meine Anwendung klein war, vielleicht nur 5 Dienste, dann könnte man ziemlich überzeugend argumentieren, dass Sie Lagom (oder irgendein anderes Microservice-Framework) wirklich nicht brauchen.Wenn Ihre Anwendung jedoch wahrscheinlich wächst, kostet das Spielen auf eigene Kosten auf lange Sicht mehr Zeit.

Es gibt offensichtlich viel mehr Überlegungen beim Entwerfen von Microservices, aber Sie erhalten die jist von Play vs Lagom.

+0

Gern geschehen. Nebenbei - wenn Sie Scala benutzen wollen, dann glaube ich, dass die Scala API für Lagom in Arbeit ist. – Nio