最近在对php为后台的网站进行性能优化,为了利用多核的优势,将数据查询换成多线程的,结果碰到一个大问题:
就是上一节用的curl_multi_init去异步并发请求网络数据,结果发现当并发数量上去后(我的大概是124个~512个),很多子请求没有数据返回,但是单独请求发现是可以返回数据的! 不知道是不是官方对curl_multi_init的并发支持不够好导致的,我在使用30~40个并发的时候也没有问题(这可能是很多人在网上大肆写这种代码的原因吧,这是个坑)!目前已采用golang去做并发模块,用php去调用golang模块获取数据。