I read the documentation about dispatchers on the official site. but it's still not clear about what dispatcher is the beast. For example, it may be configured as follows:
my-thread-pool-dispatcher {
# Dispatcher is the name of the event-based dispatcher
type = Dispatcher
# What kind of ExecutionService to use
executor = "thread-pool-executor"
# Configuration for the thread pool
thread-pool-executor {
# minimum number of threads to cap factor-based core number to
core-pool-size-min = 2
# No of core threads ... ceil(available processors * factor)
core-pool-size-factor = 2.0
# maximum number of threads to cap factor-based number to
core-pool-size-max = 10
}
# Throughput defines the maximum number of messages to be
# processed per actor before the thread jumps to the next actor.
# Set to 1 for as fair as possible.
throughput = 100
}
QUESTIONS:
Does it mean that any configured dispatcher represented by the only one instance per actor system?
Can one instance of a dispatcher manage more than one executors (thread pool, fork-join pool)?
If there's only one instance of each configured dispatcher, how do different actors (perhaps on different nodes) interact with it?