Persistent/keepalive HTTP with the PHP Curl library?
2022-08-30 09:11:56
我正在使用一个简单的PHP库通过HTTP将文档添加到SOLR索引中。
目前涉及 3 台服务器:
- 运行索引作业的 PHP 框
- 保存正在编制索引的数据的数据库框
- 索拉盒子。
在 80 个文档/秒(在 100 万个文档中)时,我注意到 PHP 和 solr box 上的网络接口上的中断速率异常高(2000/秒;更重要的是,图形几乎相同 - 当 PHP 框上的中断速率峰值时,Solr box 上的中断速率也会达到峰值),但在数据库框(300/秒)上则更少。我想这仅仅是因为我打开并重用了与数据库服务器的单个连接,但是由于Solr客户端库的编写方式,每个Solr请求目前都通过cURL打开一个新的HTTP连接。
所以,我的问题是:
- 是否可以使 cURL 打开保持活动状态的会话?
- 重用连接需要什么?-- 它是否像重用 cURL 句柄资源一样简单?
- 我是否需要设置任何特殊的 cURL 选项?(例如,强制 HTTP 1.1?
- cURL保持连接有什么陷阱吗?此脚本一次运行数小时;我可以使用单个连接,还是需要定期重新连接?