我正在使用一个简单的 PHP 库通过 HTTP 将文档添加到 SOLR 索引。
目前涉及3台服务器:
- 运行索引作业的 PHP 框
- 保存被索引数据的数据库框
- 溶胶盒。
在 80 个文档/秒(在 100 万个文档中),我注意到 PHP 和 solr 盒上的网络接口上的中断率异常高(2000/秒;此外,图表几乎相同——当中断PHP 盒上的峰值速率,Solr 盒上也出现峰值),但数据库盒上的峰值要低得多(300/秒)。我想这仅仅是因为我打开并重用了到数据库服务器的单个连接,但是由于 Solr 客户端库的编写方式,每个 Solr 请求当前都通过 cURL 打开一个新的 HTTP 连接。
所以,我的问题是:
- 可以使 cURL 打开一个 keepalive 会话吗?
- 重用连接需要什么?-- 是否像重用 cURL 句柄资源一样简单?
- 我需要设置任何特殊的 cURL 选项吗?(例如强制 HTTP 1.1?)
- cURL keepalive 连接有什么问题吗?该脚本一次运行数小时;我可以使用单个连接,还是需要定期重新连接?