Improve segmented journal actor metrics
[controller.git] / akka / repackaged-akka-jar / src / main / resources / actor_reference.conf
index 56256f9aca49c5814ff4f01d70e50da5315e1903..d41cb39ae4e039eb2c2ded848279ae55a02ef16c 100644 (file)
@@ -47,7 +47,8 @@ akka {
   # This is useful when you are uncertain of what configuration is used.
   log-config-on-start = off
 
-  # Log at info level when messages are sent to dead letters.
+  # Log at info level when messages are sent to dead letters, or published to
+  # eventStream as `DeadLetter`, `Dropped` or `UnhandledMessage`.
   # Possible values:
   # on: all dead letters are logged
   # off: no logging of dead letters
@@ -57,7 +58,12 @@ akka {
   # 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
+  log-dead-letters-during-shutdown = off
+
+  # When log-dead-letters is enabled, this will re-enable the logging after configured duration.
+  # infinite: suspend the logging forever;
+  # or a duration (eg: 5 minutes), after which the logging will be re-enabled.
+  log-dead-letters-suspend-duration = 5 minutes
 
   # List FQCN of extensions which shall be loaded at actor system startup.
   # Library extensions are regular extensions that are loaded at startup and are
@@ -67,7 +73,7 @@ akka {
   #
   # Should not be set by end user applications in 'application.conf', use the extensions property for that
   #
-  library-extensions = ${?akka.library-extensions} ["akka.serialization.SerializationExtension"]
+  library-extensions = ${?akka.library-extensions} ["akka.serialization.SerializationExtension$"]
 
   # List FQCN of extensions which shall be loaded at actor system startup.
   # Should be on the format: 'extensions = ["foo", "bar"]' etc.
@@ -89,6 +95,18 @@ akka {
   # terminate the ActorSystem itself, with or without using CoordinatedShutdown.
   jvm-shutdown-hooks = on
 
+  # Version must be the same across all modules and if they are different the startup
+  # will fail. It's possible but not recommended, to disable this check, and only log a warning,
+  # by setting this property to `off`.
+  fail-mixed-versions = on
+
+  # Some modules (remoting only right now) can emit custom events to the Java Flight Recorder if running
+  # on JDK 11 or later. If you for some reason do not want that, it can be disabled and switched to no-ops
+  # with this toggle.
+  java-flight-recorder {
+    enabled = true
+  }
+
   actor {
 
     # Either one of "local", "remote" or "cluster" or the
@@ -102,29 +120,32 @@ akka {
     # In addition to the default there is akka.actor.StoppingSupervisorStrategy.
     guardian-supervisor-strategy = "akka.actor.DefaultSupervisorStrategy"
 
-    # Timeout for ActorSystem.actorOf
+    # Timeout for Extension creation and a few other potentially blocking
+    # initialization tasks.
     creation-timeout = 20s
 
     # Serializes and deserializes (non-primitive) messages to ensure immutability,
     # this is only intended for testing.
     serialize-messages = off
 
-    # Additional serialization bindings which are enabled automatically when allow-java-serialization is disabled.
-    # settings are provided
-    java-serialization-disabled-additional-serialization-bindings = {}
-
     # Serializes and deserializes creators (in Props) to ensure that they can be
     # sent over the network, this is only intended for testing. Purely local deployments
     # as marked with deploy.scope == LocalScope are exempt from verification.
     serialize-creators = off
 
+    # If serialize-messages or serialize-creators are enabled classes that starts with
+    # a prefix listed here are not verified.
+    no-serialization-verification-needed-class-prefix = ["akka."]
+
     # Timeout for send operations to top-level actors which are in the process
     # of being started. This is only relevant if using a bounded mailbox or the
     # CallingThreadDispatcher for a top-level actor.
     unstarted-push-timeout = 10s
 
+    # TypedActor deprecated since 2.6.0.
     typed {
-      # Default timeout for typed actor methods with non-void return type
+      # Default timeout for the deprecated TypedActor (not the new actor APIs in 2.6)
+      # methods with non-void return type.
       timeout = 5s
     }
 
@@ -297,7 +318,7 @@ akka {
           # exploration will be +- 5
           explore-step-size = 0.1
 
-          # Probability of doing an exploration v.s. optmization.
+          # Probability of doing an exploration v.s. optimization.
           chance-of-exploration = 0.4
 
           # When downsizing after a long streak of underutilization, the resizer
@@ -443,7 +464,7 @@ akka {
       }
 
       # This will be used if you have set "executor = "fork-join-executor""
-      # Underlying thread pool implementation is akka.dispatch.forkjoin.ForkJoinPool
+      # Underlying thread pool implementation is java.util.concurrent.ForkJoinPool
       fork-join-executor {
         # Min number of threads to cap factor-based parallelism number to
         parallelism-min = 8
@@ -451,7 +472,7 @@ akka {
         # 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.0
+        parallelism-factor = 1.0
 
         # Max number of threads to cap factor-based parallelism number to
         parallelism-max = 64
@@ -533,6 +554,20 @@ akka {
       mailbox-requirement = ""
     }
 
+    # Default separate internal dispatcher to run Akka internal tasks and actors on
+    # protecting them against starvation because of accidental blocking in user actors (which run on the
+    # default dispatcher)
+    internal-dispatcher {
+      type = "Dispatcher"
+      executor = "fork-join-executor"
+      throughput = 5
+      fork-join-executor {
+        parallelism-min = 4
+        parallelism-factor = 1.0
+        parallelism-max = 64
+      }
+    }
+
     default-blocking-io-dispatcher {
       type = "Dispatcher"
       executor = "thread-pool-executor"
@@ -651,7 +686,7 @@ akka {
     debug {
       # enable function of Actor.loggable(), which is to log any received message
       # at DEBUG level, see the “Testing Actor Systems” section of the Akka
-      # Documentation at http://akka.io/docs
+      # Documentation at https://akka.io/docs
       receive = off
 
       # enable DEBUG logging of all AutoReceiveMessages (Kill, PoisonPill etc.)
@@ -678,7 +713,6 @@ akka {
     #
     # This setting is a short-cut to
     # - using DisabledJavaSerializer instead of JavaSerializer
-    # - enable-additional-serialization-bindings = on
     #
     # Completely disable the use of `akka.serialization.JavaSerialization` by the
     # Akka Serialization extension, instead DisabledJavaSerializer will
@@ -691,14 +725,28 @@ akka {
     #
     # Please note that this option does not stop you from manually invoking java serialization
     #
-    # The default value for this might be changed to off in future versions of Akka.
     allow-java-serialization = on
 
+    # Log warnings when the Java serialization is used to serialize messages.
+    # Java serialization is not very performant and should not be used in production
+    # environments unless you don't care about performance and security. In that case
+    # you can turn this off.
+    warn-about-java-serializer-usage = on
+
+    # To be used with the above warn-about-java-serializer-usage
+    # When warn-about-java-serializer-usage = on, and this warn-on-no-serialization-verification = off,
+    # warnings are suppressed for classes extending NoSerializationVerificationNeeded
+    # to reduce noise.
+    warn-on-no-serialization-verification = on
+
     # Entries for pluggable serializers and their bindings.
     serializers {
       java = "akka.serialization.JavaSerializer"
       bytes = "akka.serialization.ByteArraySerializer"
-
+      primitive-long = "akka.serialization.LongSerializer"
+      primitive-int = "akka.serialization.IntSerializer"
+      primitive-string = "akka.serialization.StringSerializer"
+      primitive-bytestring = "akka.serialization.ByteStringSerializer"
       primitive-boolean = "akka.serialization.BooleanSerializer"
     }
 
@@ -713,38 +761,18 @@ akka {
       "[B" = bytes
       "java.io.Serializable" = java
 
-      // TODO issue #27330: BooleanSerializer not enabled for serialization in 2.5.x yet
-      #"java.lang.Boolean" = primitive-boolean
-      #"scala.Boolean" = primitive-boolean
-    }
-
-    # Additional serialization-bindings that are replacing Java serialization are
-    # defined in this section for backwards compatibility reasons. They are included
-    # by default but can be excluded for backwards compatibility with Akka 2.4.x.
-    # They can be disabled with enable-additional-serialization-bindings=off.
-    #
-    # This should only be needed for backwards compatibility reasons.
-    enable-additional-serialization-bindings = on
-
-    # Additional serialization-bindings that are replacing Java serialization are
-    # defined in this section for backwards compatibility reasons. They are included
-    # by default but can be excluded for backwards compatibility with Akka 2.4.x.
-    # They can be disabled with enable-additional-serialization-bindings=off.
-    additional-serialization-bindings {
+      "java.lang.String" = primitive-string
+      "akka.util.ByteString$ByteString1C" = primitive-bytestring
+      "akka.util.ByteString$ByteString1" = primitive-bytestring
+      "akka.util.ByteString$ByteStrings" = primitive-bytestring
+      "java.lang.Long" = primitive-long
+      "scala.Long" = primitive-long
+      "java.lang.Integer" = primitive-int
+      "scala.Int" = primitive-int
+      "java.lang.Boolean" = primitive-boolean
+      "scala.Boolean" = primitive-boolean
     }
 
-    # Log warnings when the default Java serialization is used to serialize messages.
-    # The default serializer uses Java serialization which is not very performant and should not
-    # be used in production environments unless you don't care about performance. In that case
-    # you can turn this off.
-    warn-about-java-serializer-usage = on
-
-    # To be used with the above warn-about-java-serializer-usage
-    # When warn-about-java-serializer-usage = on, and this warn-on-no-serialization-verification = off,
-    # warnings are suppressed for classes extending NoSerializationVerificationNeeded
-    # to reduce noize.
-    warn-on-no-serialization-verification = on
-
     # Configuration namespace of serialization identifiers.
     # Each serializer implementation must have an entry in the following format:
     # `akka.actor.serialization-identifiers."FQCN" = ID`
@@ -754,33 +782,32 @@ akka {
     serialization-identifiers {
       "akka.serialization.JavaSerializer" = 1
       "akka.serialization.ByteArraySerializer" = 4
-      "akka.serialization.BooleanSerializer" = 35
-    }
-
-    # Configuration items which are used by the akka.actor.ActorDSL._ methods
-    dsl {
-      # Maximum queue size of the actor created by newInbox(); this protects
-      # against faulty programs which use select() and consistently miss messages
-      inbox-size = 1000
 
-      # Default timeout to assume for operations like Inbox.receive et al
-      default-timeout = 5s
+      primitive-long = 18
+      primitive-int = 19
+      primitive-string = 20
+      primitive-bytestring = 21
+      primitive-boolean = 35
     }
 
   }
 
   serialization.protobuf {
-
-    # Additional classes that are allowed even if they are not defined in `serialization-bindings`.
-    # It can be exact class name or name of super class or interfaces (one level).
-    # This is useful when a class is not used for serialization any more and therefore removed
-    # from `serialization-bindings`, but should still be possible to deserialize.
+    # deprecated, use `allowed-classes` instead
     whitelist-class = [
       "com.google.protobuf.GeneratedMessage",
       "com.google.protobuf.GeneratedMessageV3",
       "scalapb.GeneratedMessageCompanion",
-      "akka.protobuf.GeneratedMessage"
+      "akka.protobuf.GeneratedMessage",
+      "akka.protobufv3.internal.GeneratedMessageV3"
     ]
+
+    # Additional classes that are allowed even if they are not defined in `serialization-bindings`.
+    # It can be exact class name or name of super class or interfaces (one level).
+    # This is useful when a class is not used for serialization any more and therefore removed
+    # from `serialization-bindings`, but should still be possible to deserialize.
+    allowed-classes = ${akka.serialization.protobuf.whitelist-class}
+
   }
 
   # Used to set the behavior of the scheduler.
@@ -887,11 +914,11 @@ akka {
 
       # Fully qualified config path which holds the dispatcher configuration
       # for the read/write worker actors
-      worker-dispatcher = "akka.actor.default-dispatcher"
+      worker-dispatcher = "akka.actor.internal-dispatcher"
 
       # Fully qualified config path which holds the dispatcher configuration
       # for the selector management actors
-      management-dispatcher = "akka.actor.default-dispatcher"
+      management-dispatcher = "akka.actor.internal-dispatcher"
 
       # Fully qualified config path which holds the dispatcher configuration
       # on which file IO tasks are scheduled
@@ -969,11 +996,11 @@ akka {
 
       # Fully qualified config path which holds the dispatcher configuration
       # for the read/write worker actors
-      worker-dispatcher = "akka.actor.default-dispatcher"
+      worker-dispatcher = "akka.actor.internal-dispatcher"
 
       # Fully qualified config path which holds the dispatcher configuration
       # for the selector management actors
-      management-dispatcher = "akka.actor.default-dispatcher"
+      management-dispatcher = "akka.actor.internal-dispatcher"
     }
 
     udp-connected {
@@ -1025,18 +1052,18 @@ akka {
 
       # Fully qualified config path which holds the dispatcher configuration
       # for the read/write worker actors
-      worker-dispatcher = "akka.actor.default-dispatcher"
+      worker-dispatcher = "akka.actor.internal-dispatcher"
 
       # Fully qualified config path which holds the dispatcher configuration
       # for the selector management actors
-      management-dispatcher = "akka.actor.default-dispatcher"
+      management-dispatcher = "akka.actor.internal-dispatcher"
     }
 
     dns {
       # Fully qualified config path which holds the dispatcher configuration
       # for the manager and resolver router actors.
       # For actual router configuration see akka.actor.deployment./IO-DNS/*
-      dispatcher = "akka.actor.default-dispatcher"
+      dispatcher = "akka.actor.internal-dispatcher"
 
       # Name of the subconfig at path akka.io.dns, see inet-address below
       #
@@ -1151,6 +1178,11 @@ akka {
     # This property is related to `akka.jvm-shutdown-hooks` above.
     run-by-jvm-shutdown-hook = on
 
+    # Run the coordinated shutdown when ActorSystem.terminate is called.
+    # Enabling this and disabling terminate-actor-system is not a supported
+    # combination (will throw ConfigurationException at startup).
+    run-by-actor-system-terminate = on
+
     # When Coordinated Shutdown is triggered an instance of `Reason` is
     # required. That value can be used to override the default settings.
     # Only 'exit-jvm', 'exit-code' and 'terminate-actor-system' may be
@@ -1275,4 +1307,45 @@ akka {
     #//#coordinated-shutdown-phases
   }
 
+  #//#circuit-breaker-default
+  # Configuration for circuit breakers created with the APIs accepting an id to
+  # identify or look up the circuit breaker.
+  # Note: Circuit breakers created without ids are not affected by this configuration.
+  # A child configuration section with the same name as the circuit breaker identifier
+  # will be used, with fallback to the `akka.circuit-breaker.default` section.
+  circuit-breaker {
+
+    # Default configuration that is used if a configuration section
+    # with the circuit breaker identifier is not defined.
+    default {
+      # Number of failures before opening the circuit.
+      max-failures = 10
+
+      # Duration of time after which to consider a call a failure.
+      call-timeout = 10s
+
+      # Duration of time in open state after which to attempt to close
+      # the circuit, by first entering the half-open state.
+      reset-timeout = 15s
+
+      # The upper bound of reset-timeout
+      max-reset-timeout = 36500d
+
+      # Exponential backoff
+      # For details see https://en.wikipedia.org/wiki/Exponential_backoff
+      exponential-backoff = 1.0
+
+      # Additional random delay based on this factor is added to backoff
+      # For example 0.2 adds up to 20% delay
+      # In order to skip this additional delay set as 0
+      random-factor = 0.0
+
+      # A allowlist of fqcn of Exceptions that the CircuitBreaker
+      # should not consider failures. By default all exceptions are
+      # considered failures.
+      exception-allowlist = []
+    }
+  }
+  #//#circuit-breaker-default
+
 }