Ich arbeite an der Einrichtung einer Lagom-Anwendung in der Produktion. Ich habe versucht, Lightbend für ConductR-Lizenz in Verbindung zu treten, aber habe in Jahren nicht mehr gehört. Also, jetzt suche ich nach einem alternativen Ansatz. Ich habe mehrere Fragen.Laufender Lagom in Produktion
Da der Umfang der Anwendung im Moment ziemlich klein ist, denke ich, dass die Verwendung eines statischen Service Locators für mich jetzt funktioniert (offen für andere Alternativen). Außerdem verwende ich MySQL als meinen Ereignisspeicher anstelle der Standardkonfiguration von Cassandra (Gründe, die für diesen Thread nicht relevant sind).
Cassandra und Lagom des Service Locator zu unterdrücken, habe ich die folgenden Zeilen zu meinem build.sbt hinzugefügt:
lagomCassandraEnabled in ThisBuild := false
ich das folgende Stück meiner application.conf mit service1-impl-Modul haben ebenfalls hinzugefügt. mit sbt runAll
in einer tmux Sitzung
lagom.services {
service1 = "http://0.0.0.0:8080"
}
Für die Entwickler-Umgebung konnte ich erfolgreich meine Anwendung auszuführen. Bei dieser Konfiguration wird kein Service Locator auf dem Standard-8000-Port ausgeführt, aber ich kann Service1 auf 8080-Port einzeln treffen. (Nicht sicher, ob dies das erwartete Verhalten ist. Kommentare?)
Ich lief sbt dist
, um eine Zip-Datei zu erstellen und entpackte es dann und lief die ausführbare Datei dort. Interessanterweise wurde die Zip im Ordner service1-impl erstellt. Also, wenn ich mehrere Module (Dienste?) Habe, wird sbt dist individuelle Zip-Dateien für jeden der Dienste erstellen?
Wenn ich die ausführbare Datei über sbt dist
ausführe, versucht es, eine Verbindung zu Cassandra herzustellen, und startet auch einen Service-Locator und ignoriert die statische Service-Locator-Konfiguration, die ich hinzugefügt habe. Im Grunde sieht es so aus, als ob es die Zeilen ignoriert, die ich zu build.sbt hinzugefügt habe. Wer kann das erklären?
Zuletzt, wenn ich 2 Dienste, service1 und service2, und 2 Knoten im Cluster mit Knoten 1, der service1 und Knoten 2 ausgeführt beide Dienste, wie würde meine statische Service Locator in der application.conf aussehen würde und da jeder Dienst eine eigene application.conf hätte, müsste ich die selbe Konfiguration kopieren Statischer Service Locator in allen application.confs?
Würde es so etwas sein?
lagom.services {
service1 = "http://0.0.0.0:8080"
service1 = "http://1.2.3.4:8080"
service2 = "http://1.2.3.4:8081"
}
Da jeder spezifische Schauspieler würde auf einem der Knoten hervorgebracht werden, wie wäre es mit diesem Service-Locator-Konfiguration arbeiten?
Auch ich möchte dies nicht in einer tmux-Sitzung in der Produktion ausführen. Was wäre der beste Weg, diesen Code endlich in der Produktion zu verwenden?
Edward - ich sehe keinen Hinweis auf die freie Tier auf der Website. Kannst du genauer sein? –
@TimPigden Sie haben Recht. Es ist noch nicht verfügbar. Das hierfür benötigte Lizenzmodul befindet sich gerade in der Entwicklung. Wir werden in diesem Frühjahr eine kostenlose Stufe ankündigen, die den Stack für bis zu 3 Agenten vollständig nutzen kann. –
Fast fertig! http://conductr.lightbend.com/docs/2.1.x/ReleaseNotes#Free_Licensing –