我们正在研究一种架构,我们应该能够从 Play 发送对象!应用于一系列 Akka 远程系统。
该models.*
包在所有系统之间共享,但模型仅在 Play! 基于用户输入的应用程序。现在,对于密集操作,这些模型对象被传递给远程参与者进行处理。远程参与者根本不打算持久化对象,而只是根据数据对它们进行操作。
因此,例如,如果用户需要在第三方 API 上进行更新,则数据库中的对象只会发送到远程参与者;
remoteActorSelection ! User.find.byId(100)
我们正在使用Ebean
Play!。
现在的障碍是在 Akka 系统端,Ebean 抛出一个错误:
java.lang.RuntimeException: DataSource user is null?
at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.<init>(DataSourcePool.java:204)
at com.avaje.ebeaninternal.server.core.DefaultServerFactory.getDataSourceFromConfig(DefaultServerFactory.java:419)
在我看来,这只是意味着由于模型类扩展Model
,Ebean 期望连接到数据库。这违背了目的。
如何解决?序列化不是一种选择。