我正在读取巨大的文件并使用 slick 和 akka 演员将记录插入到 MySql 表中。我的做法是——
多个参与者读取文件和单个数据库参与者将记录插入表中。在这里,我使用批量插入 slick。(隐式会话)
我可以将连接池 fpr 与多个数据库参与者一起使用以在表中插入记录吗?每个演员将插入一条记录。(不批量插入)
那么执行此操作的有效方法是什么..?
谢谢..
我正在读取巨大的文件并使用 slick 和 akka 演员将记录插入到 MySql 表中。我的做法是——
多个参与者读取文件和单个数据库参与者将记录插入表中。在这里,我使用批量插入 slick。(隐式会话)
我可以将连接池 fpr 与多个数据库参与者一起使用以在表中插入记录吗?每个演员将插入一条记录。(不批量插入)
那么执行此操作的有效方法是什么..?
谢谢..
对于单个数据库参与者,您可能会遇到瓶颈,因为参与者一次只能处理一条消息。我会使用带有演员池(分离写入和读取)的路由器(SmallestMailbox/Balancing)。每个参与者将通过池获得连接以避免资源浪费并从那里插入(或批处理 idk,取决于性能)。
您还应该警惕 JDBC。据我所知,目前还没有成熟的异步 JDBC 驱动程序,因此您应该相应地处理事情。在这种情况下,为了避免阻塞参与者,通常采取的做法是使用PinnedDispatcher将阻塞参与者隔离在他们自己的线程池中。请记住,这并没有那么大,所以不要过度使用它。