Akka中的数据库会话,效率和线程

Tre*_*ale 10 scala akka slick

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

关于"用withSession {}"方法包装所有内容,虽然这将是一个更容易修复,但我担心这将限制Akka在演员之间的线程.我对Akka的线程如何工作知之甚少,以及如何在withSession中包装整个actor系统会影响它.

另一种方法是每当访问数据库时调用withSession,效率太低."withSession {"代码段需要大约6ms才能执行,我们正在进行数百万次查询.

基本上:在没有破坏线程的情况下,使用Slick和Akka快速访问数据库的最佳方法是什么?

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

cvo*_*ogt 4

迟到总比不到好:

推荐的方法是使用 jdbc 连接池(例如 c3p0)。您需要确保从同一线程获取和返回会话以及在同一线程之间获取会话。withSession延迟地从池中获取连接并在范围末尾返回它。在需要时快速获取连接并立即将它们返回到池中。