持续演员的Akka Sharding背压

时间:2017-06-27 14:30:56

标签: scala akka akka-stream akka-persistence backpressure

是否有Akka流背压模型或者使用持久化演员的akka​​分片?

因为我有问题,我有一个带持久演员的akka​​分片集群。 (使用cassandra作为日记插件) 有时候应该同时创建很多演员。 (例如,当我们想向所有用户发送广播消息时。)
成千上万的持久性演员试图在短时间内恢复(例如3.秒)并且在重负荷下cassandra无法在一段时间内做出响应并且许多演员多次无法恢复并且再也无法恢复。

1 个答案:

答案 0 :(得分:4)

我认为你想要的是具有指数退避的监督策略。因此,如果重新启动(即从数据库恢复)失败,它将不会立即再次尝试,而是在增加时间间隔,以便不使数据库过载。 Akka使用BackoffSupervisor提供此功能。

要在Cluster Sharding中使用它,您必须为定义监督策略的实体创建一个中间父actor,请参阅Cluster Sharding docs(群集分片监督策略本身不可插入,如这个Github issue)。