mongodb的线程池设置不起作用
迷茫
迷茫 2017-04-24 09:12:41
0
1
642

最近遇到线程池的问题,默认mongodb为每个连接(即new 出的一个连接对象)分配了一个线程池,里面最多有10个线程,网上说可以通过MongoOpection的connectionPerHost参数来调整线程池的大小,但是实际上无论我怎么修改这个参数的值线程池的大小都是10,请问这个是为什么,是不是有什么地方也要修改?

另外,对于一个网页的应用,是客户端每次点击界面产生一个连接(new一个连接的对象)的设计好,还是在程序开始的时候new一个连接,然后分配给它较大的线程池,每次客户连接就从线程池里面取一个的方式好? 个人感觉第一种在高并发的情况下对系统的负载较高。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(1)
Ty80

自己找到原因了:
1 默认线程数是10是因为用的JAVA驱动版本太老了。版本为2.2,最新的版本为2.12,已经将默认一个连接的线程池设置为100了
2 官方文档上给出的建议是开一个连接,然后从线程池中取连接
3 在2.12版本中MongoOpection类被废止了,但是是可以用的,设置connectionPerHost参数虽然可以表面上修改连接参数中线程池中的线程数量,但是实际上系统后台中线程池的上限还是100,参数没有生效(怀疑是不是有别的设置方法),但是个人觉得也不太重要了,如果线程池能一致占用在100以上,估计系统设计的也是有问题的

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage