Upgrading to akka 2.3.10 doesn't help a lot.
As I mentioned in
https://groups.google.com/forum/#!topic/akka-user/NGLi9GTZ42o, we do not
actually rely on akka to form the cluster.
We use Zookeeper to do cluster management and partition allocation but use
akka-remote to communicate between nodes.
Let's say we have node1, node2, node3 and partition P conatins (node1 and
node2)
Each node has a partitionManager actor.
In node1
partitionManager will have a child actor
akka://node1/actorsystem/partitionManager/P and a ActorSelectionRoutee for
akka://node2/actorsystem/partitionManager/P
In node2
partitionManager will have a child actor
akka://node2/actorsystem/partitionManager/P and a ActorSelectionRoutee for
akka://node1/actorsystem/partitionManager/P
In node3
partitionManager will have 2 ActorSelectionRoutees for
akka://node1/actorsystem/partitionManager/P and
akka://node2/actorsystem/partitionManager/P
All the actors are started locally thus no remote deployment is involved.
Channels can be created under a partition and channel actor is replicated
under all partition actors
For example chnl1
There will be akka://node1/actorsystem/partitionManager/P/chnl1 and
akka://node2/actorsystem/partitionManager/P/chnl1 created in node1 and node2
Now subscribers can subscribe to the channel. If the subscribers come to
node1 and node2 there will be no remote involving.
If subscribers come to node3, the partitionManager will pick up on
ActorSelectionRoutee to forward the subscription.
In this case we have remote death watch involved.
akka://node3/actorsystem/subA *watches*
akka://node1/actorsystem/partitionManager/P/chnl1 and vis versa because if
the channel actor dies the subscribers can be notified and do a
re-subscribe to another partition member and in a graceful stop case,
channel actor needs to wait for all subscribers get terminated and stop
itself.
Now the main logic is creating channel, subscribing to channel, publishing
to channel and stopping channel.
In this use case, we get the Quarantined event almost daily.
And our settings for the failure detector is
watch-failure-detector {
heartbeat-interval = 10s
acceptable-heartbeat-pause = 30s
min-std-deviation = 200ms
threshold = 12.0
}
Thanks,
--
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups "Akka
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.