业务情景:秒杀商品问题: 
1,如果同一个时间里面有5000个数据库写入请求, 想问问程序是否会有5000个数据库连接请求?
2,如果用了数据库连接池cp30 那些, 数据库连接会如何?

解决方案 »

  1.   

    5000个mysql就能扛住,前提是服务器好一点。
    如果再高的话,可以想办法使用延迟入库。或者使用缓存记数什么的。
      

  2.   

    看你的连接池的设计,连接池设计5000个链接 就会有5000个,但是正常情况下不会有这么大设置,要根据数据库做调整,mysql默认允许100个最大链接。
    比如你cp30设置了最大的连接数是100,这时有500个并发请求同时过来,这时候会给其中的100个请求分配数据库连接,其他的400个进入等待队列等待前面100个放开占用的连接。具体的时间,值等等的设置去网上搜索下就明白了,看下他的配置的话原理也就会理解差不多了。
      

  3.   


    哦哦 当如果没有用那些连接池的玩儿, 单单jdbc , 会发生什么事情呢?
    比如mysql最大允许100个连接, 剩下的4900在等待?
      

  4.   


    哦哦 当如果没有用那些连接池的玩儿, 单单jdbc , 会发生什么事情呢?
    比如mysql最大允许100个连接, 剩下的4900在等待?
      

  5.   

    单单jdbc的话超过连接会出现无法连接数据库的错误。