Java怎么共享数据库_java – 共享数据库连接与私有数据库连接

试图找出如何管理/使用长期数据库连接.我没有这种经验,因为我只使用数据库与小型系统(最多约150个并发用户,每个用户都有自己的数据库用户/通行证,因此任何时候都有多达150个长期数据库连接)或网页(每个页面请求都有自己的数据库连接,持续时间不到一秒,因此并发数据库的数量并不大.)

这次将有一个Java服务器和Flash客户端. Java连接到PostgreSQL.预计连接将是长期存在的,即,当Flash客户端连接到Java服务器并且当Flash客户端断开连接时,它们预计会启动.在所有用户(客户端)之间共享单个连接或为每个客户端建立专用连接会更好吗?或者其他一些解决方案会更好?

*)单/共享连接:

>()专业人士

>整个系统只有一个DB连接

>( – )缺点:

>无法使用事务(例如,“user1.startTransaction(); user1.updateBooks(); user2.updateBooks(); user1.rollback();”到单个共享连接将回滚user2完成的更改)

>一个用户的长查询可能会影响其他用户(但不确定)

*)私人连接:

>()专业人士

>交易没问题:)

>( – )缺点:

>可能需要大量的并发连接,即,如果有10000个在线用户,则需要10000个DB连接,这似乎是太高的数量:)我对预期的用户数量一无所知,因为我们是仍处于研究和规划的过程中.

一种解决方案是引入超时,即,如果DB连接未用于15/60/900(?)秒,则它将断开连接.当用户再次需要DB时,它会重新连接.这对我来说似乎是一个很好的解决方案,但我想知道对此可能是合理的限制,例如,可能是并发数据库连接的最大数量,应该使用什么超时等.

另一种解决方案是将查询分组为两种“类型” – 一种可以安全地使用单个共享长生命连接的类型(例如,“更新用户设置last_visit = now(),其中id =:user_id”),以及另一种需要的类型私人短生活联系(例如,可能会做一些繁重工作或使用交易的东西).这个解决方案对我来说似乎并不吸引人,但如果这是应该做的,我可以尝试这样做……

那么……在这种情况下,其他开发者会做些什么呢?还有其他合理的解决方案吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值