From 9c2b660617a5ff900ce465afb8be34be81486142 Mon Sep 17 00:00:00 2001 From: Patrik Nordwall Date: Tue, 2 Apr 2019 16:17:25 +0200 Subject: [PATCH] Declare Artery TCP ready for production, #26664 --- akka-docs/src/main/paradox/remoting-artery.md | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/akka-docs/src/main/paradox/remoting-artery.md b/akka-docs/src/main/paradox/remoting-artery.md index 69b65cf79a..c5f0c1fc31 100644 --- a/akka-docs/src/main/paradox/remoting-artery.md +++ b/akka-docs/src/main/paradox/remoting-artery.md @@ -25,7 +25,7 @@ akka { remote { artery { enabled = on - transport = aeron-udp # See Selecting a transport below + transport = tcp # See Selecting a transport below canonical.hostname = "127.0.0.1" canonical.port = 25520 } @@ -63,10 +63,9 @@ underlying module that allows for Cluster, it is still useful to understand deta @@@ note This page describes the remoting subsystem, codenamed *Artery* that will eventually replace the -@ref:[old remoting implementation](remoting.md). Artery with the Aeron transport is ready -to use in production. The TCP based transport is not ready for use in production yet. The module is -marked @ref:[may change](common/may-change.md) because some configuration will be changed when the API -becomes stable. +@ref:[classic remoting implementation](remoting.md). Artery is ready to use in production, but the +module is still marked @ref:[may change](common/may-change.md) because some configuration will be +changed when the API becomes stable in Akka 2.6.0. @@@ @@ -99,7 +98,9 @@ The TCP and TLS transport is implemented using Akka Streams TCP/TLS. This is the when encryption is needed, but it can also be used with plain TCP without TLS. It's also the obvious choice when UDP can't be used. It has very good performance (high throughput and low latency) but latency at high throughput -might not be as good as the Aeron transport. +might not be as good as the Aeron transport. It has less operational complexity than the +Aeron transport and less risk of trouble in container environments. Artery TCP will be +the default transport in Akka 2.6.0. @@@ note @@ -110,9 +111,27 @@ officially supported. If you're on a Big Endian processor, such as Sparc, it is @@@ +## Migrating from classic remoting +Artery TCP will be the default transport in Akka 2.6.0, and the @ref:[classic remoting implementation](remoting.md) +will be deprecated. -### Canonical address +Artery has the same functionality as classic remoting and you should normally only have to change the +configuration to switch. + +Enable Artery as shown in above @ref:[configuration](#configuration) with your +@ref:[selected transport](#selecting-a-transport). `tcp` is a good start. + +The protocol part in the Akka `Address`, for example `"akka.tcp://actorSystemName@10.0.0.1:2552/user/actorName"` +has changed from `akka.tcp` to `akka`. If you have configured or hardcoded any such addresses you have to change +them to `"akka://actorSystemName@10.0.0.1:2552/user/actorName"`. `akka` is used also when TLS is enabled. +One typical place where such address is used is in the `seed-nodes` configuration. + +The configuration is different, so you might have to revisit any custom configuration. See the full +@ref:[reference configuration for Artery](general/configuration.md#config-akka-remote-artery) and +@ref:[reference configuration for classic remoting](general/configuration.md#config-akka-remote). + +## Canonical address In order to remoting to work properly, where each system can send messages to any other system on the same network (for example a system forwards a message to a third system, and the third replies directly to the sender system)