Sharded Daemon Process

警告
此模块当前被标记为可能会更改,因为它是一项新功能,获得实际使用情况的反馈后确定最终确定API。这意味着API或语义可以更改,而不会发出警告或弃用期限。还不建议您在生产中立即使用此模块。

模块信息

要使用Akka Sharded守护进程,必须在项目中添加以下依赖项:

介绍

分片守护进程提供了一种运行N个actor的方法,每个actor都有一个从0开始的数字ID,然后在整个集群中保持活动,并保持平衡。当需要重新平衡时,actor将停止,并由在所有节点上保持活动运行的节点触发,然后在新节点上启动(保持活动应被视为实现细节,并且在将来的版本中可能会更改)。

预期的用例是将数据处理工作负载分配给一定数量的workers,每个worker都需要处理数据子集。通常需要根据CQRS应用程序中所有EventSourcedBehaviors可用的事件流来创建投影。使用N个标记中的一个标记事件,这些标记用于在N个worker之间分配消费、更新投影的工作量。

对于需要保持单个worker存活的情况,请参阅“群集单例”

基本例子
要设置一组与Sharded Daemon进程一起运行的actor,集群中的每个节点在启动时都需要运行相同的初始化:

提供了一种额外的工厂方法,以实现进一步的可配置性并为actor提供正常的停止消息。

actors寻址

在需要将消息发送给守护进程actors的用例中,建议将系统接待员与一个ServiceKey一起使用,所有守护进程actors都将其注册到广播中,或者需要更细粒度的消息传递时使用单个ServiceKey。

可扩展性

该群集工具仅适用于少量消费者,无法很好地扩展到大范围。在大型集群中,建议使用角色限制节点数量,分片守护程序进程将在其上运行。

你可能感兴趣的:(akka,cluster)