From ff6a76f3750212509001b7c704c41b1103863c25 Mon Sep 17 00:00:00 2001 From: Roland Date: Tue, 14 Aug 2012 20:42:54 +0200 Subject: [PATCH 1/3] better document top-level supervisors, see #2366 and #2386 --- akka-docs/general/addressing.rst | 25 ++++++++++--- akka-docs/general/guardians.png | Bin 0 -> 74199 bytes akka-docs/general/supervision.rst | 57 ++++++++++++++++++++++++++++++ akka-docs/java/remoting.rst | 4 ++- akka-docs/java/untyped-actors.rst | 11 +++--- akka-docs/scala/actors.rst | 11 +++--- akka-docs/scala/remoting.rst | 4 ++- 7 files changed, 97 insertions(+), 15 deletions(-) create mode 100644 akka-docs/general/guardians.png diff --git a/akka-docs/general/addressing.rst b/akka-docs/general/addressing.rst index 424140ab96..299ad5199a 100644 --- a/akka-docs/general/addressing.rst +++ b/akka-docs/general/addressing.rst @@ -316,21 +316,36 @@ the address of this actor system, in which case it will be resolved to the actor’s local reference. Otherwise, it will be represented by a remote actor reference. -Special Paths used by Akka --------------------------- +.. _toplevel-paths: + +Top-Level Scopes for Actor Paths +-------------------------------- At the root of the path hierarchy resides the root guardian above which all -other actors are found. The next level consists of the following: +other actors are found; its name is ``"/"``. The next level consists of the +following: - ``"/user"`` is the guardian actor for all user-created top-level actors; - actors created using :meth:`ActorSystem.actorOf` are found at the next level. + actors created using :meth:`ActorSystem.actorOf` are found below this one. - ``"/system"`` is the guardian actor for all system-created top-level actors, e.g. logging listeners or actors automatically deployed by configuration at the start of the actor system. - ``"/deadLetters"`` is the dead letter actor, which is where all messages sent to - stopped or non-existing actors are re-routed. + stopped or non-existing actors are re-routed (on a best-effort basis: messages + may be lost even within the local JVM). - ``"/temp"`` is the guardian for all short-lived system-created actors, e.g. those which are used in the implementation of :meth:`ActorRef.ask`. - ``"/remote"`` is an artificial path below which all actors reside whose supervisors are remote actor references +The need to structure the name space for actors like this arises from a central +and very simple design goal: everything in the hierarchy is an actor, and all +actors function in the same way. Hence you can not only look up the actors you +created, you can also look up the system guardian and send it a message (which +it will dutifully discard in this case). This powerful principle means that +there are no quirks to remember, it makes the whole system more uniform and +consistent. + +If you want to read more about the top-level structure of an actor system, have +a look at :ref:`toplevel-supervisors`. + diff --git a/akka-docs/general/guardians.png b/akka-docs/general/guardians.png new file mode 100644 index 0000000000000000000000000000000000000000..67dce546f5d8b368ef533727ecaa576a1ed4fac8 GIT binary patch literal 74199 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Êsy{ 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 GgeCxl?wGs) literal 0 HcmV?d00001 diff --git a/akka-docs/general/supervision.rst b/akka-docs/general/supervision.rst index c1bc684ce4..75512dd03f 100644 --- a/akka-docs/general/supervision.rst +++ b/akka-docs/general/supervision.rst @@ -55,6 +55,63 @@ actors cannot be orphaned or attached to supervisors from the outside, which might otherwise catch them unawares. In addition, this yields a natural and clean shutdown procedure for (sub-trees of) actor applications. +.. _toplevel-supervisors: + +The Top-Level Supervisors +------------------------- + +.. image:: guardians.png + :align: center + :width: 360 + +An actor system will during its creation start at least three actors, shown in +the image above. For more information about the consequences for actor paths +see :ref:`toplevel-paths`. + +``/user``: The Guardian Actor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The actor which is probably most interacted with is the parent of all +user-created actors, the guardian named ``"/user"``. Actors created using +``system.actorOf()`` are children of this actor. This means that when this +guardian terminates, all normal actors in the system will be shutdown, too. It +also means that this guardian’s supervisor strategy determines how the +top-level normal actors are supervised. Since Akka 2.1 it is possible to +configure this using the setting ``akka.actor.guardian-supervisor-strategy``, +which takes the fully-qualified class-name of a +:class:`SupervisorStrategyConfigurator`. When the guardian escalates a failure, +the root guardian’s response will be to terminate the guardian, which in effect +will shut down the whole actor system. + +``/system``: The System Guardian +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This special guardian has been introduced in order to achieve an orderly +shut-down sequence where logging remains active while all normal actors +terminate, even though logging itself is implemented using actors. This is +realized by having the system guardian watch the guardian and initiate its own +shut-down upon reception of the :class:`Terminated` message. The top-level +system actors are supervised using a strategy which will restart indefinitely +upon all types of :class:`Exception` except for +:class:`ActorInitializationException` and :class:`ActorKilledException`, which +will terminate the child in question. All other throwables are escalated, +which will shut down the whole actor system. + +``/``: The Root Guardian +^^^^^^^^^^^^^^^^^^^^^^^^ + +The root guardian is the grand-parent of all so-called “top-level” actors and +supervises all the special actors mentioned in :ref:`toplevel-paths` using the +``SupervisorStrategy.stoppingStrategy``, whose purpose is to terminate the +child upon any type of :class:`Exception`. All other throwables will be +escalated … but to whom? Since every real actor has a supervisor, the +supervisor of the root guardian cannot be a real actor. And because this means +that it is “outside of the bubble”, it is called the “bubble-walker”. This is a +synthetic :class:`ActorRef` which in effect stops its child upon the first sign +of trouble and sets the actor system’s ``isTerminated`` status to ``true`` as +soon as the root guardian is fully terminated (all children recursively +stopped). + .. _supervision-restart: What Restarting Means diff --git a/akka-docs/java/remoting.rst b/akka-docs/java/remoting.rst index 82a736973f..b356381766 100644 --- a/akka-docs/java/remoting.rst +++ b/akka-docs/java/remoting.rst @@ -61,7 +61,9 @@ As you can see from the example above the following pattern is used to find an ` akka://@:/ -For more details on how actor addresses and paths are formed and used, please refer to :ref:`addressing`. +.. note:: + + For more details on how actor addresses and paths are formed and used, please refer to :ref:`addressing`. Creating Actors Remotely ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/akka-docs/java/untyped-actors.rst b/akka-docs/java/untyped-actors.rst index d80aa45cd7..a983a578c9 100644 --- a/akka-docs/java/untyped-actors.rst +++ b/akka-docs/java/untyped-actors.rst @@ -22,10 +22,13 @@ its syntax from Erlang. Creating Actors =============== -Since Akka enforces parental supervision every actor is supervised and -(potentially) the supervisor of its children; it is advisable that you -familiarize yourself with :ref:`actor-systems` and :ref:`supervision` and it -may also help to read :ref:`actorOf-vs-actorFor`. +.. note:: + + Since Akka enforces parental supervision every actor is supervised and + (potentially) the supervisor of its children, it is advisable that you + familiarize yourself with :ref:`actor-systems` and :ref:`supervision` and it + may also help to read :ref:`actorOf-vs-actorFor` (the whole of + :ref:`addressing` is recommended reading in any case). Defining an Actor class ----------------------- diff --git a/akka-docs/scala/actors.rst b/akka-docs/scala/actors.rst index b995c78438..548190c6fd 100644 --- a/akka-docs/scala/actors.rst +++ b/akka-docs/scala/actors.rst @@ -22,10 +22,13 @@ its syntax from Erlang. Creating Actors =============== -Since Akka enforces parental supervision every actor is supervised and -(potentially) the supervisor of its children; it is advisable that you -familiarize yourself with :ref:`actor-systems` and :ref:`supervision` and it -may also help to read :ref:`actorOf-vs-actorFor`. +.. note:: + + Since Akka enforces parental supervision every actor is supervised and + (potentially) the supervisor of its children, it is advisable that you + familiarize yourself with :ref:`actor-systems` and :ref:`supervision` and it + may also help to read :ref:`actorOf-vs-actorFor` (the whole of + :ref:`addressing` is recommended reading in any case). Defining an Actor class ----------------------- diff --git a/akka-docs/scala/remoting.rst b/akka-docs/scala/remoting.rst index ab49765fad..6a0e8731b7 100644 --- a/akka-docs/scala/remoting.rst +++ b/akka-docs/scala/remoting.rst @@ -72,7 +72,9 @@ Once you obtained a reference to the actor you can interact with it they same wa actor ! "Pretty awesome feature" -For more details on how actor addresses and paths are formed and used, please refer to :ref:`addressing`. +.. note:: + + For more details on how actor addresses and paths are formed and used, please refer to :ref:`addressing`. Creating Actors Remotely ^^^^^^^^^^^^^^^^^^^^^^^^ From da00a91b349e49828a7bddfad6cab8b342c6e6e9 Mon Sep 17 00:00:00 2001 From: Roland Date: Fri, 17 Aug 2012 12:12:14 +0200 Subject: [PATCH 2/3] add more information about supervisor strategies --- akka-docs/general/supervision.rst | 4 +++- akka-docs/java/fault-tolerance.rst | 20 +++++++++++++++++++- akka-docs/java/remoting.rst | 4 ++++ akka-docs/scala/fault-tolerance.rst | 19 ++++++++++++++++++- 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/akka-docs/general/supervision.rst b/akka-docs/general/supervision.rst index 75512dd03f..12053ed6ad 100644 --- a/akka-docs/general/supervision.rst +++ b/akka-docs/general/supervision.rst @@ -68,6 +68,8 @@ An actor system will during its creation start at least three actors, shown in the image above. For more information about the consequences for actor paths see :ref:`toplevel-paths`. +.. _user-guardian: + ``/user``: The Guardian Actor ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -89,7 +91,7 @@ will shut down the whole actor system. This special guardian has been introduced in order to achieve an orderly shut-down sequence where logging remains active while all normal actors terminate, even though logging itself is implemented using actors. This is -realized by having the system guardian watch the guardian and initiate its own +realized by having the system guardian watch the user guardian and initiate its own shut-down upon reception of the :class:`Terminated` message. The top-level system actors are supervised using a strategy which will restart indefinitely upon all types of :class:`Exception` except for diff --git a/akka-docs/java/fault-tolerance.rst b/akka-docs/java/fault-tolerance.rst index a444f79ec0..3794ebd3fe 100644 --- a/akka-docs/java/fault-tolerance.rst +++ b/akka-docs/java/fault-tolerance.rst @@ -49,7 +49,7 @@ does not apply, leaving the possibility to specify an absolute upper limit on th restarts or to make the restarts work infinitely. Default Supervisor Strategy ---------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``Escalate`` is used if the defined strategy doesn't cover the exception that was thrown. @@ -64,6 +64,24 @@ exceptions are handled by default: If the exception escalate all the way up to the root guardian it will handle it in the same way as the default strategy defined above. +Stopping Supervisor Strategy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Closer to the Erlang way is the strategy to just stop children when they fail +and then take corrective action in the supervisor when DeathWatch signals the +loss of the child. This strategy is also provided pre-packaged as +:obj:`SupervisorStrategy.stoppingStrategy` with an accompanying +:class:`StoppingSupervisorStrategy` configurator to be used when you want the +``"/user"`` guardian to apply it. + +Supervision of Top-Level Actors +------------------------------- + +Toplevel actors means those which are created using ``system.actorOf()``, and +they are children of the :ref:`User Guardian `. There are no +special rules applied in this case, the guardian simply applies the configured +strategy. + Test Application ---------------- diff --git a/akka-docs/java/remoting.rst b/akka-docs/java/remoting.rst index b356381766..d00eb02dc7 100644 --- a/akka-docs/java/remoting.rst +++ b/akka-docs/java/remoting.rst @@ -61,6 +61,10 @@ As you can see from the example above the following pattern is used to find an ` akka://@:/ +Once you obtained a reference to the actor you can interact with it they same way you would with a local actor, e.g.:: + + actor.tell("Pretty awesome feature", getSelf()); + .. note:: For more details on how actor addresses and paths are formed and used, please refer to :ref:`addressing`. diff --git a/akka-docs/scala/fault-tolerance.rst b/akka-docs/scala/fault-tolerance.rst index c1d6158954..f0e3952c99 100644 --- a/akka-docs/scala/fault-tolerance.rst +++ b/akka-docs/scala/fault-tolerance.rst @@ -53,7 +53,7 @@ which is a ``PartialFunction[Throwable, Directive]``. This is the piece which maps child failure types to their corresponding directives. Default Supervisor Strategy ---------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``Escalate`` is used if the defined strategy doesn't cover the exception that was thrown. @@ -68,6 +68,23 @@ exceptions are handled by default: If the exception escalate all the way up to the root guardian it will handle it in the same way as the default strategy defined above. +Stopping Supervisor Strategy +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Closer to the Erlang way is the strategy to just stop children when they fail +and then take corrective action in the supervisor when DeathWatch signals the +loss of the child. This strategy is also provided pre-packaged as +:obj:`SupervisorStrategy.stoppingStrategy` with an accompanying +:class:`StoppingSupervisorStrategy` configurator to be used when you want the +``"/user"`` guardian to apply it. + +Supervision of Top-Level Actors +------------------------------- + +Toplevel actors means those which are created using ``system.actorOf()``, and +they are children of the :ref:`User Guardian `. There are no +special rules applied in this case, the guardian simply applies the configured +strategy. Test Application ---------------- From 48ca56459ee5fa4cd2d75c4a388835b085aea66f Mon Sep 17 00:00:00 2001 From: Roland Date: Fri, 17 Aug 2012 12:25:31 +0200 Subject: [PATCH 3/3] switch remoting logging on by default, see #2397 --- akka-docs/java/remoting.rst | 10 ++++++++++ akka-docs/scala/remoting.rst | 10 ++++++++++ akka-remote/src/main/resources/reference.conf | 3 ++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/akka-docs/java/remoting.rst b/akka-docs/java/remoting.rst index d00eb02dc7..07ebd6e36a 100644 --- a/akka-docs/java/remoting.rst +++ b/akka-docs/java/remoting.rst @@ -274,6 +274,16 @@ you simply register as listener to the below described types in on the ``ActorSy To subscribe to any inbound-related events, subscribe to ``RemoteServerLifeCycleEvent`` To subscribe to any remote events, subscribe to ``RemoteLifeCycleEvent`` +By default an event listener is registered which logs all of the events +described below. This default was chosen to help setting up a system, but it is +quite common to switch this logging off once that phase of the project is +finished. + +.. note:: + In order to switch off the logging, set + ``akka.remote.log-remote-lifecycle-events = off`` in your + ``application.conf``. + To intercept when an outbound connection is disconnected, you listen to ``RemoteClientDisconnected`` which holds the transport used (RemoteTransport) and the outbound address that was disconnected (Address). diff --git a/akka-docs/scala/remoting.rst b/akka-docs/scala/remoting.rst index 6a0e8731b7..b22626f67f 100644 --- a/akka-docs/scala/remoting.rst +++ b/akka-docs/scala/remoting.rst @@ -278,6 +278,16 @@ you simply register as listener to the below described types in on the ``ActorSy To subscribe to any inbound-related events, subscribe to ``RemoteServerLifeCycleEvent`` To subscribe to any remote events, subscribe to ``RemoteLifeCycleEvent`` +By default an event listener is registered which logs all of the events +described below. This default was chosen to help setting up a system, but it is +quite common to switch this logging off once that phase of the project is +finished. + +.. note:: + In order to switch off the logging, set + ``akka.remote.log-remote-lifecycle-events = off`` in your + ``application.conf``. + To intercept when an outbound connection is disconnected, you listen to ``RemoteClientDisconnected`` which holds the transport used (RemoteTransport) and the outbound address that was disconnected (Address). diff --git a/akka-remote/src/main/resources/reference.conf b/akka-remote/src/main/resources/reference.conf index 7ae3219c5d..45179796e1 100644 --- a/akka-remote/src/main/resources/reference.conf +++ b/akka-remote/src/main/resources/reference.conf @@ -72,7 +72,8 @@ akka { log-sent-messages = off # If this is "on", Akka will log all RemoteLifeCycleEvents at the level defined for each, if off then they are not logged - log-remote-lifecycle-events = off + # Failures to deserialize received messages also fall under this flag. + log-remote-lifecycle-events = on # Each property is annotated with (I) or (O) or (I&O), where I stands for “inbound” and O for “outbound” connections. # The NettyRemoteTransport always starts the server role to allow inbound connections, and it starts