Je travaille sur la mise en place d'une application Lagom en production. J'ai essayé de contacter Lightbend pour la licence ConductR mais je n'ai pas entendu depuis longtemps. Donc, maintenant je cherche une approche alternative. J'ai plusieurs questions.Exécution de Lagom en production
Comme l'échelle de l'application est assez petite en ce moment, je pense que l'utilisation d'un localisateur de service statique fonctionne pour moi en ce moment (ouvert à d'autres alternatives). En outre, j'utilise MySQL comme magasin d'événements au lieu de la configuration par défaut de Cassandra (Raisons non pertinentes pour ce thread).
Pour supprimer Cassandra et service de Lagom Locator, j'ai ajouté les lignes suivantes à mon build.sbt:
lagomCassandraEnabled in ThisBuild := false
J'ai également ajouté la pièce suivante à mon application.conf avec le module service1-impl.
lagom.services {
service1 = "http://0.0.0.0:8080"
}
Pour l'environnement dev, j'ai été en mesure d'exécuter avec succès mon application à l'aide sbt runAll
dans une session tmux. Avec cette configuration, il n'y a pas de localisateur de service fonctionnant sur le port 8000 par défaut, mais je peux frapper individuellement le service1 sur le port 8080. (Je ne sais pas si c'est le comportement attendu.)
J'ai exécuté sbt dist
pour créer un fichier zip, puis l'ai décompressé et j'ai exécuté l'exécutable. Fait intéressant, le fichier zip a été créé dans le dossier service1-impl. Donc, si j'ai plusieurs modules (services?), Sbt dist va-t-il créer des fichiers zip individuels pour chacun des services?
Lorsque j'exécute l'exécutable créé via sbt dist
, il tente de se connecter à Cassandra et lance également un localisateur de service et ignore la configuration du localisateur de service statique que j'ai ajouté. Fondamentalement, il semble qu'il ignore les lignes que j'ai ajoutées à build.sbt. Quelqu'un peut-il expliquer cela? Enfin, si je devais avoir 2 services, service1 et service2, et 2 nœuds dans le cluster avec le nœud 1 exécutant service1 et le nœud 2 exécutant les deux services, à quoi ressemblerait mon localisateur de service statique dans le fichier application.conf et puisque chaque service aurait son propre application.conf, devrais-je copier la même configuration localisateur de service statique dans tous les application.confs?
Est-ce que ce serait quelque chose comme ça?
lagom.services {
service1 = "http://0.0.0.0:8080"
service1 = "http://1.2.3.4:8080"
service2 = "http://1.2.3.4:8081"
}
Comme chaque acteur spécifique serait donné naissance à l'un des nœuds, comment serait-il travailler avec cette configuration de localisation de service?
De même, je ne veux pas exécuter cela dans une session tmux en production. Quel serait le meilleur moyen de finalement exécuter ce code en production?
Edward - Je ne vois aucune mention du niveau gratuit sur le site. Peux-tu être plus précis? –
@TimPigden Vous avez raison. Ce n'est pas encore disponible. Le module de licence requis pour cela est en cours de développement. Nous annoncerons absolument un niveau gratuit qui permettra l'utilisation complète de la pile pour un maximum de 3 agents ce printemps. –
Presque prêt! http://conductr.lightbend.com/docs/2.1.x/ReleaseNotes#Free_Licensing –