Мы собираемся в конечном итоге с десятками этих микросервисов (большинство из них основаны на Акке), и я не уверен, как лучше всего управлять их развертыванием. В частности, они построены независимо друг от друга и как можно более специализированные и распределенные.Что такое канонический способ развертывания микросервисов Scala/Akka?
Мой вопрос связан с тем, что все они слишком малы для своих индивидуальных JVM; даже если бы мы разместили их на экземплярах AWS nano, мы все равно закончим с 40 машинами, если вы восполняете избыточность, и такое большое количество просто не нужно. Три экземпляра среднего размера могут (и делать) легко обрабатывать всю рабочую нагрузку.
В настоящее время я просто группирую их в «контейнерные» приложения, несколько случайным образом, а затем запускаю эти контейнерные приложения на больших JVM.
Однако должен быть лучший способ. Я не знаю о каких-либо серверах приложений для Akka, где вы можете просто «развернуть актеров», поэтому я хотел получить представление о том, как другие используют микросервисы Akka на производстве (и, в частности, как управлять развертыванием).
Это, вероятно, не только Scala и Akka, но и большинство других платформ имеют выделенные серверы приложений, где вы развертываете эти вещи.
Взгляните на Akka Clustering and Маршрутизация. Маршрутизаторы могут развернуть несколько Routees на основе конфигурации, и кластер предоставит вам множество узлов для ваших маршрутизаторов. Множество опций, описанных здесь: http://doc.akka.io/docs/akka/current/scala/cluster-usage.html –