当使用 Akka Actor 时,创建的每个 Actor 都会在 ActorRegistry 中注册。ActorRegistry 是一个单例,允许轻松查找和管理所有参与者(启动、停止...)。
然而,在 OSGi 环境中,可以在内部使用 Akka Actor 安装多个应用程序包(并且 Akka 本身作为包安装)。应用程序包的一些参与者应该对其他包可用,并作为导出的服务。其他的则严格在捆绑包内部。然而,ActorRegistry 包含所有捆绑包的所有参与者(因为它是单例),因此包括导出的和内部的。这意味着即使是捆绑包内部使用的演员也可用于任何其他捆绑包。
但我想更好地控制哪些演员在捆绑范围之外可用。理想情况下,每个包都有自己的 ActorRegistry,并决定它的哪些演员作为 OSGi 服务发布。
那么,在 OSGi 环境中将 Akka 用于模块化应用程序以实现真正的模块化的最佳方式是什么?
(关于这个的背景http://blog.xume.com/2011/02/actorregistry-scope-using-akka-in-osgi.html