Merge pull request #1984 from akka/wip-3734-doc-remoting-peer-to-peer-patriknw
=doc #3734 Clarify that remoting cannot be used for client-server
This commit is contained in:
commit
31adcd070b
4 changed files with 29 additions and 4 deletions
|
|
@ -20,7 +20,7 @@ to conveniently set up the ActorSystem.
|
||||||
The ``ActorSystemActivator`` creates the actor system with a class loader that finds resources
|
The ``ActorSystemActivator`` creates the actor system with a class loader that finds resources
|
||||||
(``reference.conf`` files) and classes from the application bundle and all transitive dependencies.
|
(``reference.conf`` files) and classes from the application bundle and all transitive dependencies.
|
||||||
|
|
||||||
The ``ActorSystemActivator`` class is included in the ``akka-osgi`` artifact.
|
The ``ActorSystemActivator`` class is included in the ``akka-osgi`` artifact::
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.typesafe.akka</groupId>
|
<groupId>com.typesafe.akka</groupId>
|
||||||
|
|
@ -28,6 +28,7 @@ The ``ActorSystemActivator`` class is included in the ``akka-osgi`` artifact.
|
||||||
<version>@version@</version>
|
<version>@version@</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
Sample
|
Sample
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,23 @@ be set to a specific :class:`Deploy` instance; this has the same effect as
|
||||||
putting an equivalent deployment into the configuration file (if both are
|
putting an equivalent deployment into the configuration file (if both are
|
||||||
given, configuration file wins).
|
given, configuration file wins).
|
||||||
|
|
||||||
|
Peer-to-Peer vs. Client-Server
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Akka Remoting is a communication module for connecting actor systems in a peer-to-peer fashion,
|
||||||
|
and it is the foundation for Akka Clustering. The design of remoting is driven by two (related)
|
||||||
|
design decisions:
|
||||||
|
|
||||||
|
#. Communication between involved systems is symmetric: if a system A can connect to a system B
|
||||||
|
then system B must also be able to connect to system A independently.
|
||||||
|
#. The role of the communicating systems are symmetric in regards to connection patterns: there
|
||||||
|
is no system that only accepts connections, and there is no system that only initiates connections.
|
||||||
|
|
||||||
|
The consequence of these decisions is that it is not possible to safely create pure client-server setups
|
||||||
|
with predefined roles (violates assumption 2) and using setups involving NAT (violates assumption 1).
|
||||||
|
|
||||||
|
For client-server setups it is better to use HTTP or Akka I/O.
|
||||||
|
|
||||||
Marking Points for Scaling Up with Routers
|
Marking Points for Scaling Up with Routers
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
|
|
@ -66,4 +83,4 @@ up a configurable number of children of the desired type and route to them in
|
||||||
the configured fashion. Once such a router has been declared, its configuration
|
the configured fashion. Once such a router has been declared, its configuration
|
||||||
can be freely overridden from the configuration file, including mixing it with
|
can be freely overridden from the configuration file, including mixing it with
|
||||||
the remote deployment of (some of) the children. Read more about
|
the remote deployment of (some of) the children. Read more about
|
||||||
this in :ref:`routing-scala` and :ref:`routing-java`.
|
this in :ref:`Routing (Scala) <routing-scala>` and :ref:`Routing (Java) <routing-java>`.
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,9 @@
|
||||||
|
|
||||||
For an introduction of remoting capabilities of Akka please see :ref:`remoting`.
|
For an introduction of remoting capabilities of Akka please see :ref:`remoting`.
|
||||||
|
|
||||||
|
As explained in that chapter Akka remoting is designed for communication in a
|
||||||
|
peer-to-peer fashion and it has limitations for client-server setups.
|
||||||
|
|
||||||
Preparing your ActorSystem for Remoting
|
Preparing your ActorSystem for Remoting
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,16 @@
|
||||||
.. _remoting-scala:
|
.. _remoting-scala:
|
||||||
|
|
||||||
#################
|
##########
|
||||||
Remoting
|
Remoting
|
||||||
#################
|
##########
|
||||||
|
|
||||||
|
|
||||||
For an introduction of remoting capabilities of Akka please see :ref:`remoting`.
|
For an introduction of remoting capabilities of Akka please see :ref:`remoting`.
|
||||||
|
|
||||||
|
As explained in that chapter Akka remoting is designed for communication in a
|
||||||
|
peer-to-peer fashion and it has limitations for client-server setups.
|
||||||
|
|
||||||
|
|
||||||
Preparing your ActorSystem for Remoting
|
Preparing your ActorSystem for Remoting
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue