有人可以告诉我Akka扩展的目的吗? 即使在阅读the document之后,我也不知道何时使用Akka扩展。
答案 0 :(得分:2)
扩展名就像一个单例但绑定到actor系统生命周期,而不是JVM,这意味着它不会在测试中的actor系统之间泄漏,例如全局单例。
一个常见且易于理解的用例是将配置解析为您自己的类的更具特定于应用程序的类型安全结构,而不是直接从config api通过键访问配置。
相当一些内置的Akka工具实际上是扩展,就像acjay提到的那样。
答案 1 :(得分:1)
这只是一种创建扩展Akka核心功能的插件的方法。当您想要创建可能应用于许多Akka项目的通用库时,您可以使用它。许多Akka发行版都是作为扩展实现的。当您开始在Akka中使用非平凡功能时,您无疑会发现至少使用扩展模式来访问运行时数据/实例以使用扩展。
Akka Cluster的一个例子是distributed publish and subscribe。群集中要参与pub / sub的每个节点必须只有一个mediator
正在运行,它负责在群集中分发消息。所以mediator
是一个本地单身人士。框架通过初始化并将其存储在扩展实例中来管理应用程序的单例,扩展实例通过将其应用于actor系统来检索。