Http://www.playframework.org/documentation/2.0.1/AkkaCore has some default dispatcher configuration information for the websites that are used in this example.
Each state of a connection to a WebSocket is controlled by an agent-agent. A new actor is created for each WebSocket and is killed when the socket is closed.
This webpage also shows the default configuration:
websockets-dispatcher = { fork-join-executor { parallelism-factor = 1.0 parallelism-max = 24 } }
By default, all dispatchers will start their membership set in the thread pool. Therefore, for each client creating a web layout, an actor will be created. How many threads are allocated depends on which executor service is used. It seems that fork-join-executor
will create threads on demand before parallelism-max
.
In addition, there are actors for handling actions and promises.
It seems that there are a lot of controls in Acca to fine-tune performance. See http://doc.akka.io/docs/akka/2.0.1/general/configuration.html . Creating a “highly scalable” server is likely to require a lot of benchmarking and some hardware.
source share