Replies: 3 comments 2 replies
-
*) Mixing of hostname and FQDN would be possible. |
Beta Was this translation helpful? Give feedback.
-
An idea to get it implemented, is to add an abstract protocol that acks as a routing plane DescriptionA node has multiple protocols active with addresses: The abstract protocol 'net' can be added this would then add following address: Akka.Cluster and Akka.Remote would work and see always the ProblemThe only problem that I see for this implementation is in Example: Sending a message to a remote node IActorRef remote; //to remote address `akka.net://akka@c0b22851c4ad4667841bae8705dea511:0/user/myActor1`
IActorRef self = Self; //from local address '/user/myActor2'
IActorRef target; //local address '/user/myActor3'
var message = new MyMessage(target); //the message
remote.Tell(message, self);
/*
the real transport is going over DotNettyTransport to "real" address 'akka.tcp://akka@remote-node:2552/`
self would need to be translated to 'akka.net://akka@ed6e814a690a4b7ba076e15e49a5a4ba:0/user/myActor2'
and NOT to 'akka.tcp://akka@local-node:2552/user/myActor2'
target need to be translated to 'akka.net://akka@ed6e814a690a4b7ba076e15e49a5a4ba:0/user/myActor3'
and NOT to 'akka.tcp://akka@local-node:2552/user/myActor3'
*/ |
Beta Was this translation helpful? Give feedback.
-
The Key to resolve it is with I will make a test in the near feature |
Beta Was this translation helpful? Give feedback.
-
In the process of implantation a mesh networking over UDP
see: https://github.com/Zetanova/PNet.Mesh
I come across a strong demand to have the possibility to address nodes by multiple addresses
on the same Akka.Remote.Transport Scheme
Even a workaround to register the same Akka.Remote.Transport twice with different schemes will not work,
because of the current behavior to resolve the response address by the incoming senders address.
Following components would profit from a multi-homed transport feature:
*) Broadcast messages over UDP.
UDP has native multicast/broadcast support.
*) The ClusterClient
A client could connect to a round-robing address like over a NLB or DNS
*) Virtual Addresses
Well-Known Addresses could be used, that are not bound to the Network layer.
Akka.Remote would need to resolve them like with a DNS hostname.
*) A floating Address could be implemented.
Clusters and Roles could have a dedicated Address as a singleton.
Like in a Failover cluster or keepalived, an addresses that lives only on the leader
*) Routers and DistributedPubSub
Routers could create virtual addresses and senders could use multicast
on transport level instead of of unicast
ScatterGatherFirstCompleted could only have a single routee as the broadcast address.
*) Events and Streams
Communication over multicast/broadcast
*) Discovery
Akka.Cluster and Akka.Discovery could use it for messaging.
*) Distributed Data
Broadcast messaging for Akka.DistributedData replication.
Beta Was this translation helpful? Give feedback.
All reactions