![]() |
强健的碗 · 春花鉴别指南——3张图分辨14种常见春花 - 知乎· 1 年前 · |
![]() |
聪明伶俐的小马驹 · 世界十大最安全航空公司海航列第八|最安全航空 ...· 1 年前 · |
![]() |
孤独的领结 · 《猎黑行动》上映,扫黑除恶斩草除根,樊少皇曹 ...· 1 年前 · |
![]() |
干练的水煮肉 · 中国随州千年银杏谷景区旅游攻略 - 知乎· 1 年前 · |
![]() |
绅士的鸡蛋面 · 张译,殷桃,张佳宁时隔五年再次合作 ...· 1 年前 · |
我使用一个简单的PHP库通过HTTP将文档添加到SOLR索引中。
目前涉及3台服务器:
在每秒80个文档(总共100万个文档)的情况下,我注意到PHP和solr机器上的网络接口有异常高的中断率(2000/秒;而且,图形几乎相同--当PHP机器上的中断率达到峰值时,Solr机器上的中断率也会达到峰值),但数据库机器上的中断率要低得多(300/秒)。我想这很简单,因为我打开并重用了到数据库服务器的单个连接,但由于Solr客户端库的编写方式,每个Solr请求当前都通过cURL打开一个新的HTTP连接。
所以,我的问题是:
如果您不关心来自请求的响应,那么可以异步执行它们,但这样做可能会使SOLR索引超载。不过我对此表示怀疑,SOLR的速度非常快。
PHP文档( curl_setopt )说:
CURLOPT_FORBID_REUSE
-TRUE
强制连接在完成处理后显式关闭,并且不会被池化以供重用。
所以:
安装,它是15秒或100个请求,以先出现的为准)-但当发生这种情况时,cURL将只打开另一个连接。
您要访问的服务器上的
curl_setopt($curlHandle,CURLOPT_HTTPHEADER,curl_setopt( 'Connection: Keep-Alive','Keep-Alive: 300‘));