我们正在使用一个非常频繁地查询 MySQL 的 Play 应用程序。事实上,几乎每个操作都以某种方式查询数据库。
据我了解,Play 旨在支持异步和非阻塞应用程序,并鼓励据此进行编码。但由于 com.mysql.jdbc.Driver 是一个阻塞 JDBC 驱动程序,我看不到使用非阻塞查询的方法。
当多个 (6-20) 用户同时使用我们的应用程序时,我们遇到了严重的性能问题。当您开始使用应用程序时,它会随着时间的推移而变慢。
因此,我尝试通过将其放在 application.conf 中来更改默认的 play akka 配置,如此处建议的“高度同步应用程序”:http ://www.playframework.com/documentation/2.1.0/ThreadPools
play {
akka {
event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
loglevel = WARNING
actor {
default-dispatcher = {
fork-join-executor {
parallelism-min = 300
parallelism-max = 300
}
}
}
}
}
我的问题是:application.conf 中的大多数其他配置都是键=值对,我是否只是将这个 json 对象直接放在文件中,它就可以工作?当我这样做时我没有收到任何错误,所以我认为它接受这个?
如果是,我如何测试这是否生效?我没有看到应用程序的性能发生巨大变化。所以我不确定我是否在这里遇到了根本性的错误。任何帮助、指示或评论将不胜感激。
我们在 linux 机器上使用 Play 2.0.3 和 OpenJDK 1.6,有 2 个 CPU 和 2GB 的 xmx。