具有持久性参与者的 Akka 分片的背压
Back-pressure for Akka Sharding with persistent actors
是否有 Akka 流背压模型或用于将 akka 分片与持久性 actor 一起使用的模型?
因为我有一个问题,我有一个带有持久性参与者的 akka 分片集群。 (使用 cassandra 作为日志插件)。
有时应该同时创建很多演员。 (例如,当我们想向所有用户发送广播消息时。)
数以千计的持久参与者试图在短时间内恢复(例如 3.seconds),并且在重负载下,cassandra 无法立即响应,并且许多参与者多次恢复失败并且再也没有恢复。
我想你想要的是一种指数退避的监督策略。因此,如果重启(即从数据库恢复)失败,它不会立即重试,而是增加时间间隔,以免数据库过载。
Akka 提供了 BackoffSupervisor.
要将其与集群分片一起使用,您必须为定义监管策略的实体创建一个中间父参与者,请参阅 Cluster Sharding docs (the cluster sharding supervision strategy itself is not pluggable, as explained in this Github issue)。
是否有 Akka 流背压模型或用于将 akka 分片与持久性 actor 一起使用的模型?
因为我有一个问题,我有一个带有持久性参与者的 akka 分片集群。 (使用 cassandra 作为日志插件)。
有时应该同时创建很多演员。 (例如,当我们想向所有用户发送广播消息时。)
数以千计的持久参与者试图在短时间内恢复(例如 3.seconds),并且在重负载下,cassandra 无法立即响应,并且许多参与者多次恢复失败并且再也没有恢复。
我想你想要的是一种指数退避的监督策略。因此,如果重启(即从数据库恢复)失败,它不会立即重试,而是增加时间间隔,以免数据库过载。 Akka 提供了 BackoffSupervisor.
要将其与集群分片一起使用,您必须为定义监管策略的实体创建一个中间父参与者,请参阅 Cluster Sharding docs (the cluster sharding supervision strategy itself is not pluggable, as explained in this Github issue)。