Описание тега akka-remote-actor

Akka remoting is designed for communication in a peer-to-peer fashion. It has limitations for client-server setups. In particular Akka Remoting does not work transparently with Network Address Translation and Load Balancers, among others.

Akka remoting is designed for communication in a peer-to-peer fashion and it has limitations for client-server setups. In particular Akka Remoting does not work transparently with Network Address Translation and Load Balancers, among others.

Peer-to-Peer vs. Client-Server

1.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.

2.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 Network Address Translation or Load Balancers (violates assumption 1).

For client-server setups it is better to use HTTP or Akka I/O.

Akka with NAT, Load Balancing or Docker

Akka remoting can work in these particular cases, but it involves some configuration changes.

Reference:

http://doc.akka.io/docs/akka/snapshot/general/remoting.html

http://doc.akka.io/docs/akka/snapshot/scala/remoting.html