使用 akka 演员休眠

Posted

技术标签:

【中文标题】使用 akka 演员休眠【英文标题】:Hibernate using akka actors 【发布时间】:2016-03-10 14:22:27 【问题描述】:

我想使用 akka actor 读取和处理整个帐户表。我们有一个多线程参与者框架,目前使用读取数据“块”的简单 jdbc 查询来执行此操作。我们现在想利用 JPA/Hibernate 的映射和对象图。我们有一个 spring 应用程序。

如何使用 Hibernate 并仍然利用多线程?我使用 Hibernate 的经验是使用 EntityManager 创建 DAO 并调用 myDao.getById(...) 但是我如何处理我们已经使用 jdbc 获取的数据,现在使用 Hibernate 管理它?

【问题讨论】:

【参考方案1】:

当然,您可以将 hibernate 与 akka 演员一起使用,您应该小心并关注this answer。

但是对于使用带有 ORM 的演员,我推荐你 SORM

SORM 是一个 Scala ORM 框架,旨在消除样板代码 并通过高级抽象解决可伸缩性问题 和函数式编程风格。特点

从关系概念中完全抽象出来。您使用案例类、集合和其他标准 Scala 数据类型,而不是 表、行、外键和关系。

域模型与持久层完全分离。模型声明中不存在对持久层的注释、特殊类型或任何其他依赖项。这房子很干净!

直观且集中的与连接无关的 API。没有错综复杂的隐式结构会污染分散在多个组件中的命名空间和功能。无需手动管理连接。

并发。单个 SORM 实例可以安全地跨多个线程使用,并无缝集成到基于 actor 的并发系统中,例如 Akka

集成连接池。只需设置“poolSize”参数即可扩展。

自动生成架构。

【讨论】:

以上是关于使用 akka 演员休眠的主要内容,如果未能解决你的问题,请参考以下文章

如何从演员本身中获取 Akka 演员的名字?

每个数据库实体一个 Akka 演员?

在 Akka 中创建演员的成本是多少?

如何在akka中扩展超级演员的行为

通过简单的 akka-http 路由测试与演员陷入无限循环

如何在非对称系统中将对象发送到远程 akka 演员