连接池大小与并发请求数

Cri*_*ris 1 java web-services scalability glassfish

我要开发一个高扩展性的webservice,但是连接池大小(Oracle DB)设置为50。

拥有这个大小意味着服务的并发请求数量最多为 50,否则将没有新连接可用,对吗?

但是通过配置,Weblogic 或 Glassfish 服务器是否可以同时接受 50 个以上的请求?

我读到服务器接受“排队”的请求,直到线程处理它们。

关于“可扩展性”,我也有一个问号,因为平均数据库调用需要 1,2 秒。+ 肥皂开销...==> 每次调用的响应时间为 2,3 秒。

我可以估计服务器将支持多少并发用户(Weblogic 或 Glasfish 4gb)?

谢谢

Adr*_*lor 6

池中最多有 50 个连接并不意味着您一次只能处理 50 个用户。每个页面请求都应该生成可以相互交错的查询:因此,虽然您一次只能运行 50 个查询,但应该能够处理更多的页面请求。这可以通过确保您只在短时间内连接到数据库来帮助。

连接池的使用主要是为了避免一直设置新连接的成本(加上准备好的语句被缓存等),因此目的是尽可能频繁地重用它们。

当您说平均数据库调用需要 1.2 秒时:如果这是单个查询,我认为您想查看查询或表索引以减少此时间(否则我担心无论如何您都会遇到可扩展性问题),但是如果是多个查询,那么它们应该很高兴地与其他请求交错。

关于排队:weblogic 将对查询进行排队,但您可以设置超时,以便在设置的时间后返回未完成的查询。然后您可以决定再试一次或告诉用户系统正忙,也许稍后再试。