Use-case and Deployment Scenarios
How can I use and deploy Akka?
Akka can be used in different ways:
- As a library: used as a regular JAR on the classpath and/or in a web app, to
be put into
WEB-INF/lib
- Package with sbt-native-packager
- Package and deploy using Lightbend ConductR.
Native Packager
sbt-native-packager is a tool for creating distributions of any type of application, including an Akka applications.
Define sbt version in project/build.properties
file:
sbt.version=0.13.7
Add sbt-native-packager in project/plugins.sbt
file:
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.0-RC1")
Use the package settings and optionally specify the mainClass in build.sbt
file:
注釈
Use the JavaServerAppPackaging
. Don't use the deprecated AkkaAppPackaging
(previously named
packageArchetype.akka_application
), since it doesn't have the same flexibility and quality
as the JavaServerAppPackaging
.
Use sbt task dist
package the application.
To start the application (on a unix-based system):
cd target/universal/
unzip akka-sample-main-scala-2.4.11.zip
chmod u+x akka-sample-main-scala-2.4.11/bin/akka-sample-main-scala
akka-sample-main-scala-2.4.11/bin/akka-sample-main-scala sample.hello.Main
Use Ctrl-C
to interrupt and exit the application.
On a Windows machine you can also use the bin\akka-sample-main-scala.bat
script.
In a Docker container
You can use both Akka remoting and Akka Cluster inside of Docker containers. But note that you will need to take special care with the network configuration when using Docker, described here: Akka behind NAT or in a Docker container
For an example of how to set up a project using Akka Cluster and Docker take a look at the "akka-docker-cluster" activator template.
Contents