-
Notifications
You must be signed in to change notification settings - Fork 8
System Configuration
AURA uses Typesafe's Config library and the HOCON syntax for configuration.
Immutable configuration objects are created at start up time and passed to the various system components. A configuration object is assembled through a hierarchical merge and subsequent resolve of the following configuration layers (higher number in the list means higher priority):
N | Name | What | Description |
---|---|---|---|
1 | reference.${type}.conf |
CP resource | Default values. |
2 | runtime values | dynamic | Current Runtime values. |
3 | profile.${aura.profile}.conf |
CP resource | A config profile for testing (optional). |
4 | ${aura.path.config}/aura.${type}.conf |
File | User-defined values. |
5 | system properties | Dynamic | Current System properties. |
The ${type}
parameter referred in the name column above identifies the type of configuration to be loaded. Possible type options are:
Type Value | Used By |
---|---|
tm |
TaskManager instances. |
wm |
WorkloadManager instances. |
client |
AuraClient instances. |
simulator |
LocalClusterSimulator instances. |
The configuration options for a particular configuration type can be found in the corresponding reference.${type}.conf
classpath resource. By default, all reference resources include a common configuration resource located named reference.conf
and assign the entries under the default.*
namespace to a configuration key coinciding with the current type (e.g. wm.io
will inherit the default.io
configuration).
The following table describes the main configuration namespaces used in the system. Paths starting with ${type}
exist for the tm, wm, and client configuration types.
Key | Description |
---|---|
${type}.io.local |
Local buffer and channel configuration. |
${type}.io.tcp |
TCP packats configuration. |
${type}.io.netty |
Netty manager configuration. |
${type}.io.rpc |
RPC servers configuration. |
${type}.io.event |
Kryo events. |
${type}.io.connection |
Channel connection configuration. |
${type}.machine |
Machine descriptor for the current instance. |
zookeeper |
Zookeper server configuration. |
simulator |
Configuration for the cluster simulator. |
While reference.${type}.conf
files can be used to override configuration parameters on a particular development or production environment, configuration profiles can be used to additionally load a resource named profile.${aura.profile}.conf
from the aura-core module.
This can be useful when running integration tests on a CI server with limited resources. To use a configuration profile, set the aura.profile System property when you run the tests:
mvn -Daura.profile=travis test
Additionally, profile.user.conf
is ignored by git, so you can use e.g. the profile.default.conf
as a starting point for your own configuration by copying it to the same location.
- Home
-
System Design
- System Configuration
- [Feature Ideas](Future Features)
- [Distributed Environment](Distributed Environment)
- Development
-
Testing
- [Wally-cluster Usage](Wally Cluster)
- Remote Monitoring
- Remote Debugging