1 ############################################
2 # Akka Cluster Tools Reference Config File #
3 ############################################
5 # This is the reference config file that contains all the default settings.
6 # Make your edits/overrides in your application.conf.
8 # //#pub-sub-ext-config
9 # Settings for the DistributedPubSub extension
10 akka.cluster.pub-sub {
11 # Actor name of the mediator actor, /system/distributedPubSubMediator
12 name = distributedPubSubMediator
14 # Start the mediator on members tagged with this role.
15 # All members are used if undefined or empty.
18 # The routing logic to use for 'Send'
19 # Possible values: random, round-robin, broadcast
20 routing-logic = random
22 # How often the DistributedPubSubMediator should send out gossip information
25 # Removed entries are pruned after this duration
26 removed-time-to-live = 120s
28 # Maximum number of elements to transfer in one message when synchronizing the registries.
29 # Next chunk will be transferred in next round of gossip.
30 max-delta-elements = 3000
32 # When a message is published to a topic with no subscribers send it to the dead letters.
33 send-to-dead-letters-when-no-subscribers = on
35 # The id of the dispatcher to use for DistributedPubSubMediator actors.
36 # If specified you need to define the settings of the actual dispatcher.
37 use-dispatcher = "akka.actor.internal-dispatcher"
39 # //#pub-sub-ext-config
41 # Protobuf serializer for cluster DistributedPubSubMeditor messages
44 akka-pubsub = "akka.cluster.pubsub.protobuf.DistributedPubSubMessageSerializer"
46 serialization-bindings {
47 "akka.cluster.pubsub.DistributedPubSubMessage" = akka-pubsub
48 "akka.cluster.pubsub.DistributedPubSubMediator$Internal$SendToOneSubscriber" = akka-pubsub
50 serialization-identifiers {
51 "akka.cluster.pubsub.protobuf.DistributedPubSubMessageSerializer" = 9
56 # //#receptionist-ext-config
57 # Settings for the ClusterClientReceptionist extension
58 akka.cluster.client.receptionist {
59 # Actor name of the ClusterReceptionist actor, /system/receptionist
62 # Start the receptionist on members tagged with this role.
63 # All members are used if undefined or empty.
66 # The receptionist will send this number of contact points to the client
67 number-of-contacts = 3
69 # The actor that tunnel response messages to the client will be stopped
70 # after this time of inactivity.
71 response-tunnel-receive-timeout = 30s
73 # The id of the dispatcher to use for ClusterReceptionist actors.
74 # If specified you need to define the settings of the actual dispatcher.
75 use-dispatcher = "akka.actor.internal-dispatcher"
77 # How often failure detection heartbeat messages should be received for
79 heartbeat-interval = 2s
81 # Number of potentially lost/delayed heartbeats that will be
82 # accepted before considering it to be an anomaly.
83 # The ClusterReceptionist is using the akka.remote.DeadlineFailureDetector, which
84 # will trigger if there are no heartbeats within the duration
85 # heartbeat-interval + acceptable-heartbeat-pause, i.e. 15 seconds with
86 # the default settings.
87 acceptable-heartbeat-pause = 13s
89 # Failure detection checking interval for checking all ClusterClients
90 failure-detection-interval = 2s
92 # //#receptionist-ext-config
94 # //#cluster-client-config
95 # Settings for the ClusterClient
97 # Actor paths of the ClusterReceptionist actors on the servers (cluster nodes)
98 # that the client will try to contact initially. It is mandatory to specify
99 # at least one initial contact.
100 # Comma separated full actor paths defined by a string on the form of
101 # "akka://system@hostname:port/system/receptionist"
102 initial-contacts = []
104 # Interval at which the client retries to establish contact with one of
105 # ClusterReceptionist on the servers (cluster nodes)
106 establishing-get-contacts-interval = 3s
108 # Interval at which the client will ask the ClusterReceptionist for
109 # new contact points to be used for next reconnect.
110 refresh-contacts-interval = 60s
112 # How often failure detection heartbeat messages should be sent
113 heartbeat-interval = 2s
115 # Number of potentially lost/delayed heartbeats that will be
116 # accepted before considering it to be an anomaly.
117 # The ClusterClient is using the akka.remote.DeadlineFailureDetector, which
118 # will trigger if there are no heartbeats within the duration
119 # heartbeat-interval + acceptable-heartbeat-pause, i.e. 15 seconds with
120 # the default settings.
121 acceptable-heartbeat-pause = 13s
123 # If connection to the receptionist is not established the client will buffer
124 # this number of messages and deliver them the connection is established.
125 # When the buffer is full old messages will be dropped when new messages are sent
126 # via the client. Use 0 to disable buffering, i.e. messages will be dropped
127 # immediately if the location of the singleton is unknown.
128 # Maximum allowed buffer size is 10000.
131 # If connection to the receiptionist is lost and the client has not been
132 # able to acquire a new connection for this long the client will stop itself.
133 # This duration makes it possible to watch the cluster client and react on a more permanent
134 # loss of connection with the cluster, for example by accessing some kind of
135 # service registry for an updated set of initial contacts to start a new cluster client with.
136 # If this is not wanted it can be set to "off" to disable the timeout and retry
138 reconnect-timeout = off
140 # //#cluster-client-config
142 # Protobuf serializer for ClusterClient messages
145 akka-cluster-client = "akka.cluster.client.protobuf.ClusterClientMessageSerializer"
147 serialization-bindings {
148 "akka.cluster.client.ClusterClientMessage" = akka-cluster-client
150 serialization-identifiers {
151 "akka.cluster.client.protobuf.ClusterClientMessageSerializer" = 15
155 # //#singleton-config
156 akka.cluster.singleton {
157 # The actor name of the child singleton actor.
158 singleton-name = "singleton"
160 # Singleton among the nodes tagged with specified role.
161 # If the role is not specified it's a singleton among all nodes in the cluster.
164 # When a node is becoming oldest it sends hand-over request to previous oldest,
165 # that might be leaving the cluster. This is retried with this interval until
166 # the previous oldest confirms that the hand over has started or the previous
167 # oldest member is removed from the cluster (+ akka.cluster.down-removal-margin).
168 hand-over-retry-interval = 1s
170 # The number of retries are derived from hand-over-retry-interval and
171 # akka.cluster.down-removal-margin (or ClusterSingletonManagerSettings.removalMargin),
172 # but it will never be less than this property.
173 # After the hand over retries and it's still not able to exchange the hand over messages
174 # with the previous oldest it will restart itself by throwing ClusterSingletonManagerIsStuck,
175 # to start from a clean state. After that it will still not start the singleton instance
176 # until the previous oldest node has been removed from the cluster.
177 # On the other side, on the previous oldest node, the same number of retries - 3 are used
178 # and after that the singleton instance is stopped.
179 # For large clusters it might be necessary to increase this to avoid too early timeouts while
180 # gossip dissemination of the Leaving to Exiting phase occurs. For normal leaving scenarios
181 # it will not be a quicker hand over by reducing this value, but in extreme failure scenarios
182 # the recovery might be faster.
183 min-number-of-hand-over-retries = 15
185 # Config path of the lease to be taken before creating the singleton actor
186 # if the lease is lost then the actor is restarted and it will need to re-acquire the lease
187 # the default is no lease
190 # The interval between retries for acquiring the lease
191 lease-retry-interval = 5s
193 # //#singleton-config
195 # //#singleton-proxy-config
196 akka.cluster.singleton-proxy {
197 # The actor name of the singleton actor that is started by the ClusterSingletonManager
198 singleton-name = ${akka.cluster.singleton.singleton-name}
200 # The role of the cluster nodes where the singleton can be deployed.
201 # Corresponding to the role used by the `ClusterSingletonManager`. If the role is not
202 # specified it's a singleton among all nodes in the cluster, and the `ClusterSingletonManager`
203 # must then also be configured in same way.
206 # Interval at which the proxy will try to resolve the singleton instance.
207 singleton-identification-interval = 1s
209 # If the location of the singleton is unknown the proxy will buffer this
210 # number of messages and deliver them when the singleton is identified.
211 # When the buffer is full old messages will be dropped when new messages are
212 # sent via the proxy.
213 # Use 0 to disable buffering, i.e. messages will be dropped immediately if
214 # the location of the singleton is unknown.
215 # Maximum allowed buffer size is 10000.
218 # //#singleton-proxy-config
220 # Serializer for cluster ClusterSingleton messages
223 akka-singleton = "akka.cluster.singleton.protobuf.ClusterSingletonMessageSerializer"
225 serialization-bindings {
226 "akka.cluster.singleton.ClusterSingletonMessage" = akka-singleton
228 serialization-identifiers {
229 "akka.cluster.singleton.protobuf.ClusterSingletonMessageSerializer" = 14