我正在阅读大文件并使用光滑和akka actor将记录插入MySql表。我的方法是 -
读取文件的多个actor和单个数据库actor将记录插入表中。在这里,我使用光滑的批量插入。 (隐含会话)
我是否可以将连接池fpr与多个数据库actor一起使用以在表中插入记录。每个演员都会插入一条记录。(无批量插入)
那么有效的方法是什么呢?
谢谢..
答案 0 :(得分:0)
使用单个数据库角色,您可能会遇到瓶颈,因为角色一次只能处理一条消息。我会使用路由器(SmallestMailbox / Balancing)和一组actor(分开写入和读取)。每个actor都会通过池获得连接,以避免资源浪费,并从那里进行插入(或批量idk,取决于perf)。
你也应该对JDBC持谨慎态度。据我所知,目前还没有成熟的异步JDBC驱动程序,所以你应该相应地处理事情。在这种情况下,为避免阻塞actor,通常采用的方法是使用PinnedDispatcher隔离自己的线程池中的阻塞的阻塞者。请记住,这不会扩展那么多,所以不要过分使用它。