日期:2014-05-17  浏览次数:20664 次

系统并发量超过500的JDBC DAO该如何设计?
最近在做一个项目,并发量在500-800的样子,至少也500。项目中存和取各占50%比例。使用的是c3p0连接池,目前项目dao也只能支撑100并发的样子。

我想请问这种500以上的高并发的dao该如何设计?
dao 高并发 c3p0 jdbc

------解决方案--------------------
对于你的dao如何设计影响并不大,重在你的数据库如何设计和你的sql语句如何写法。
------解决方案--------------------
可以考虑采用流的方式,打印时不是把数据一次性全取出,而是分页取,然后不断往流里面写,类似Http Server的做法。这样内存占用较低,写个自己的BufferInputStream
------解决方案--------------------
假设有200个请求,每个请求只处理一条SQL语句,数据库连接池是100 connections.
所以在并发下最大只能同时处理100个请求,因为连接池就100个,当连接池能增大到200时可以并发处理(还要依赖于其他的资源是否充足)
------解决方案--------------------
可以考虑减少取数据的次数,比如参数使用缓存,减少访问次数。
------解决方案--------------------
不要全取,用分页取!