10

我目前正在使用一个非常大的数据库(> 50GB),并试图了解与 Akka 固有线程配合良好的最有效、最可用的方法。

关于“将所有内容包装在 withSession{} 中”的方法,虽然这会更容易解决,但我担心这会限制 Akka 在参与者之间的线程。我不太了解 Akka 的线程是如何工作的,以及将整个演员系统包装在 withSession 中会如何影响它。

另一种方法是在访问数据库时调用withSession,效率太低。“withSession {”代码段需要大约 6 毫秒的时间来执行,我们正在进行数百万次查询。

本质上:在不中断线程的情况下,使用 Slick 和 Akka 快速访问数据库的最佳方法是什么?

我听说过使用隐式会话和事务的方法,但我很难找到关于其中任何一个的文档。

4

1 回答 1

4

迟到总比不到好:

推荐的方法是使用 jdbc 连接池(例如 c3p0)。您需要确保从同一线程中获取和返回会话。withSession懒惰地从池中获取连接并在作用域结束时返回它。在需要时快速获取连接,然后立即将它们返回到池中。

于 2014-03-25T21:21:03.780 回答