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.

Reply via email to