【发布时间】:2015-03-28 11:26:01
【问题描述】:
我正在使用 Akka Persistence 和 Cluster Sharding。向此类PersistentActor-s 提供依赖项的正确方法是什么?
据我了解,将它们作为构造函数参数传递是不可能的,因为集群分片正在创建这些参与者。
使用 Spring/Guice/等。不是惯用的 Scala(可能还有其他问题(?))。
使用object 来实现单例会导致繁琐的测试并且看起来很糟糕。
正确的方法是什么?
附:如果您打算建议 Cake 模式,请在这个特定的 Akka Persistence Cluster Sharding 上下文中提供示例代码。
【问题讨论】:
-
正如我所写 - “集群分片正在创建这些参与者”
-
编辑:stackoverflow.com/questions/26475491/… 抱歉,我的想法在这里根本是错误的。
-
感谢您链接到这个问题,@goral,它有点相关(尽管似乎没有提供解决方案)。
-
发送一个包含依赖的初始化消息怎么样?它也可以在启动前由演员发送给自己。
-
这是一个有趣的想法,但它看起来很麻烦,并且需要依赖关系是可序列化的。此外,演员本人也不知道他的依赖关系。他可以向某个知名地址上的参与者发送“给我依赖项”消息,该地址将返回依赖项。但是我们不妨首先将所有依赖项包装为参与者。
标签: scala dependency-injection akka akka-cluster akka-persistence