Merge pull request #26665 from akka/wip-26664-artery-ready-patriknw

Declare Artery TCP ready for production, #26664
This commit is contained in:
Patrik Nordwall 2019-04-02 21:55:45 +02:00 committed by GitHub
commit 18802420fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -25,7 +25,7 @@ akka {
remote { remote {
artery { artery {
enabled = on enabled = on
transport = aeron-udp # See Selecting a transport below transport = tcp # See Selecting a transport below
canonical.hostname = "127.0.0.1" canonical.hostname = "127.0.0.1"
canonical.port = 25520 canonical.port = 25520
} }
@ -63,10 +63,9 @@ underlying module that allows for Cluster, it is still useful to understand deta
@@@ note @@@ note
This page describes the remoting subsystem, codenamed *Artery* that will eventually replace the 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 @ref:[classic remoting implementation](remoting.md). Artery is ready to use in production, but the
to use in production. The TCP based transport is not ready for use in production yet. The module is module is still marked @ref:[may change](common/may-change.md) because some configuration will be
marked @ref:[may change](common/may-change.md) because some configuration will be changed when the API changed when the API becomes stable in Akka 2.6.0.
becomes stable.
@@@ @@@
@ -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 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. the obvious choice when UDP can't be used.
It has very good performance (high throughput and low latency) but latency at high throughput 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 @@@ 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 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) (for example a system forwards a message to a third system, and the third replies directly to the sender system)