我使用一个简单的PHP库通过HTTP将文档添加到SOLR索引中。
目前涉及到3个服务器:
- 运行索引任务的PHP服务器
- 保存被索引数据的数据库服务器
- Solr服务器
在处理100万个文档时,每秒索引80个文档,我发现PHP和Solr服务器上的网络接口中断率异常高(每秒达2000次),而且图表几乎完全一致。但是,在数据库服务器上情况不太明显(每秒仅为300次)。我想这很可能是因为我打开并重用了与数据库服务器的单个连接,但由于Solr客户端库的编写方式,目前每个Solr请求都会通过cURL打开一个新的HTTP连接。
所以,我的问题是:
- 能否让cURL打开一个keepalive会话?
- 如何重用连接?是否简单地重用cURL句柄资源即可?
- 是否需要设置任何特殊的cURL选项?(例如,强制使用HTTP 1.1协议?)
- cURL keepalive连接有什么需要注意的地方吗?脚本运行时间长达数小时,我能使用单个连接还是需要定期重新连接?