2017-06-27 4 views
1

Existe-t-il un modèle de contre-pression Akka ou quelque chose pour l'utilisation d'Akk Shardings avec un acteur persistant?Contre-pression pour Akka Sharding avec des acteurs persistants

Parce que j'ai un problème, j'ai un cluster akka sharding avec des acteurs persistants. (en utilisant cassandra comme plugin journal).
Parfois, beaucoup d'acteurs doivent être créés simultanément. (par exemple quand nous voulons envoyer un message de diffusion à tous les utilisateurs.)
et des milliers d'acteurs persistants tentent de récupérer dans un court laps de temps (par exemple 3.seconds) et dans une lourde charge cassandra ne répond pas dans un temps et beaucoup de les acteurs échouent à récupérer plusieurs fois et ne récupèrent jamais.

Répondre

3

Je pense que ce que vous voulez est une stratégie de supervision avec backoff exponentielle. Donc, si le redémarrage (c.-à-d. La récupération de la base de données) échoue, il ne réessayera pas immédiatement, mais en augmentant les intervalles de temps, afin de ne pas surcharger la base de données. Akka fournit ceci avec le BackoffSupervisor. Pour utiliser ceci avec Cluster Sharding, vous devez créer un acteur parent intermédiaire pour vos entités qui définit la stratégie de supervision, voir Cluster Sharding docs (la stratégie de supervision de partitionnement de cluster elle-même n'est pas connectable, comme expliqué dans cette section Github issue) .