Hi Akka Team,
I wrote an Akka application using actors and now, I want to make some load
tests and plays with the akka configurations. It's a sbt project with the
following structure :
.
├── main
│ ├── resources
│ │ ├── akka.conf
│ │ ├── application.conf
│ │ └── log4j.properties
│ └── scala
│ ├── Main_App.scala
I wrote my akka.conf in a separate file and include it in the
application.conf as below :
akka.conf :
akka {
# Loggers to register at boot time (akka.event.Logging$DefaultLogger
logs
# to STDOUT)
loggers = ["akka.event.Logging$DefaultLogger"]
# Filter of log events that is used by the LoggingAdapter before
# publishing log events to the eventStream. It can perform
# fine grained filtering based on the log source. The default
# implementation filters on the `loglevel`.
# FQCN of the LoggingFilter. The Class of the FQCN must implement
# akka.event.LoggingFilter and have a public constructor with
# (akka.actor.ActorSystem.Settings, akka.event.EventStream) parameters.
#logging-filter = "akka.event.DefaultLoggingFilter"
# Specifies the default loggers dispatcher
loggers-dispatcher = "akka.actor.default-dispatcher"
# Loggers are created and registered synchronously during ActorSystem
# start-up, and since they are actors, this timeout is used to bound the
# waiting time
logger-startup-timeout = 5s
# Log level used by the configured loggers (see "loggers") as soon
# as they have been started; before that, see "stdout-loglevel"
# Options: OFF, ERROR, WARNING, INFO, DEBUG
loglevel = "INFO"
# Log level for the very basic logger activated during ActorSystem
startup.
# This logger prints the log messages to stdout (System.out).
# Options: OFF, ERROR, WARNING, INFO, DEBUG
stdout-loglevel = "WARNING"
# Log the complete configuration at INFO level when the actor system is
started.
# This is useful when you are uncertain of what configuration is used.
log-config-on-start = on
# Log at info level when messages are sent to dead letters.
# Possible values:
# on: all dead letters are logged
# off: no logging of dead letters
# n: positive integer, number of dead letters that will be logged
log-dead-letters = 10
# Possibility to turn off logging of dead letters while the actor system
# is shutting down. Logging is only done when enabled by
'log-dead-letters'
# setting.
log-dead-letters-during-shutdown = on
# Toggles whether threads created by this ActorSystem should be daemons
or not
daemonic = off
# JVM shutdown, System.exit(-1), in case of a fatal error,
# such as OutOfMemoryError
jvm-exit-on-fatal-error = on
actor {
# Either one of "local", "remote" or "cluster" or the
# FQCN of the ActorRefProvider to be used; the below is the built-in
default,
# note that "remote" and "cluster" requires the akka-remote and
akka-cluster
# artifacts to be on the classpath.
provider = "local"
# The guardian "/user" will use this class to obtain its
supervisorStrategy.
# It needs to be a subclass of
akka.actor.SupervisorStrategyConfigurator.
# In addition to the default there is
akka.actor.StoppingSupervisorStrategy.
guardian-supervisor-strategy = "akka.actor.DefaultSupervisorStrategy"
# Timeout for ActorSystem.actorOf
creation-timeout = 20s
default-dispatcher {
# Must be one of the following
# Dispatcher, PinnedDispatcher, or a FQCN to a class inheriting
# MessageDispatcherConfigurator with a public constructor with
# both com.typesafe.config.Config parameter and
# akka.dispatch.DispatcherPrerequisites parameters.
# PinnedDispatcher must be used together with
executor=thread-pool-executor.
type = "Dispatcher"
# Which kind of ExecutorService to use for this dispatcher
# Valid options:
# - "default-executor" requires a "default-executor" section
# - "fork-join-executor" requires a "fork-join-executor" section
# - "thread-pool-executor" requires a "thread-pool-executor"
section
# - A FQCN of a class extending ExecutorServiceConfigurator
executor = "default-executor"
# This will be used if you have set "executor = "default-executor"".
# If an ActorSystem is created with a given ExecutionContext, this
# ExecutionContext will be used as the default executor for all
# dispatchers in the ActorSystem configured with
# executor = "default-executor". Note that "default-executor"
# is the default value for executor, and therefore used if not
# specified otherwise. If no ExecutionContext is given,
# the executor configured in "fallback" will be used.
default-executor {
fallback = "fork-join-executor"
}
# This will be used if you have set "executor =
"fork-join-executor""
# Underlying thread pool implementation is
scala.concurrent.forkjoin.ForkJoinPool
fork-join-executor {
# Min number of threads to cap factor-based parallelism number to
parallelism-min = 8
# The parallelism factor is used to determine thread pool size
using the
# following formula: ceil(available processors * factor).
Resulting size
# is then bounded by the parallelism-min and parallelism-max
values.
parallelism-factor = 3
# Max number of threads to cap factor-based parallelism number to
parallelism-max = 64
# Setting to "FIFO" to use queue like peeking mode which "poll"
or "LIFO" to use stack
# like peeking mode which "pop".
task-peeking-mode = "FIFO"
}
# How long time the dispatcher will wait for new actors until it
shuts down
shutdown-timeout = 1s
# Throughput defines the number of messages that are processed in a
batch
# before the thread is returned to the pool. Set to 1 for as fair
as possible.
throughput = 1
# Throughput deadline for Dispatcher, set to 0 or negative for no
deadline
throughput-deadline-time = 0ms
}
}
}
application.conf :
include "akka.conf"
To be sure that I overwrite the default values, I set to "on" the value of
*log-config-on-start*. In the Main_app of my application, I load the akka
config like this but the configuration is never print in stdout. If I
change the name of "application.conf" to "reference.conf" it works but in
the akka documentation about the configuration, I read :
1. *####################################*
2. *# Akka Actor Reference Config File #*
3. *####################################*
4.
5. *# This is the reference config file that contains all the default
settings.*
6. *# Make your edits/overrides in your application.conf.*
So rename application.conf to reference.conf seems not be the good solution
of my problem. So if anyone can say to me how to deal with Akka config,
I'm listening !
object App extends LazyLogging {
val config = ConfigFactory.load()
val akkaConfig = config.getConfig("akka")
val actorSystemName = config.getString("fgs.actor_system_name")
val system = ActorSystem(actorSystemName, akkaConfig)
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.