Обратное давление для Akka Sharding с настойчивыми актерами

Существует ли модель обратного давления потока Akka или что-то для использования осколков akka с постоянным актером?

Поскольку у меня есть проблема, у меня есть шардинговый кластер akka с постоянными акторами. (используя cassandra в качестве плагина журнала).
Иногда нужно создать много актеров одновременно. (например, когда мы хотим отправить широковещательное сообщение всем пользователям.)
и тысячи постоянных участников пытаются восстановиться за короткое время (например, 3 секунды), а при большой нагрузке кассандра не может ответить за время и много актеров несколько раз терпит неудачу при восстановлении и больше никогда не восстанавливается.


person hich9n    schedule 27.06.2017    source источник


Ответы (1)


Я думаю, вам нужна стратегия надзора с экспоненциальным отставанием. Поэтому, если перезагрузка (то есть восстановление из базы данных) не удалась, повторная попытка будет выполнена не сразу, а через увеличивающиеся промежутки времени, чтобы не перегружать базу данных. Akka предоставляет это с помощью BackoffSupervisor.

Чтобы использовать это с Cluster Sharding, вам нужно будет создать промежуточный родительский актор для ваших сущностей, который определяет стратегию наблюдения, см. Документы по сегментированию кластера (сама стратегия контроля сегментирования кластера не является подключаемой, как описано в этом ошибка Github).

person lutzh    schedule 27.06.2017