Играйте вместе с веб-приложением Akka Actors и не веб-приложением - PullRequest
0 голосов
/ 15 мая 2018

Я создал приложение, которое имеет веб-сервер и ssh-сервер, которые работают вместе.На данный момент SSH-сервер является запущенным в Play синглтоном.Так что это приложение воспроизведения, работающее в фоновом режиме с сервером SSH.

Мне бы хотелось, чтобы сервер ssh не зависел на 100% от веб-части.Было бы также неплохо, если бы они могли работать на отдельных серверах, чтобы было легче масштабировать.

Поскольку я использую Play (это построено на Akka), я думаю, что актеры - хорошее решение.Но как это реализовать?

Для веб-и не веб-частей требуется несколько одинаковых классов, например: у них обоих должен быть класс User, который можно отправлять между двумя приложениями.Они должны быть отправлены через актеров.Но веб и не веб часть - это разные вещи.

Возможно ли объединить 2 проекта в 1 проект с разными точками входа?Таким образом, я все еще могу использовать те же классы, и они будут корректно сериализироваться при отправке через актеров, потому что они точно такие же.Или есть другой / лучший способ?

Я нашел эту страницу в документации Play https://www.playframework.com/documentation/2.6.x/SBTSubProjects. Но это "Play first", я хотел бы, чтобы оба приложения могли запускаться отдельно.

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете посмотреть документацию sbt для сборок нескольких проектов

. В своем файле build.sbt вы можете создавать следующие части:

lazy val shared = (project in file("shared"))

lazy val ssh = (project in file("ssh"))
  .dependsOn(shared)

lazy val http = (project in file("http"))
  .enablePlugins(PlayScala)
  .dependsOn(shared)

Таким образому вас будет общий код и отдельные части.Вы также можете добавить другой проект, объединяющий части ssh и http в один проект.

Для связи между двумя частями вы можете использовать akka с удаленными участниками

...