相关疑难解决方法(0)

使用PHP Curl库的持久/ keepalive HTTP?

我正在使用一个简单的PHP库通过HTTP将文档添加到SOLR索引.

目前涉及3台服务器:

  1. 运行索引作业的PHP框
  2. 一个数据库框,其中包含要编制索引的数据
  3. solr盒子.

在80个文档/秒(100万个文档中),我注意到PHP和solr盒子上的网络接口上的异常高的中断率(2000 /秒;更重要的是,图表几乎相同 - 当中断时PHP盒子峰值的速率,它也在Solr盒子上激增),但在数据库盒子上却少得多(300 /秒).我想这只是因为我打开并重用了一个到数据库服务器的连接,但是每个Solr请求当前都是通过cURL打开一个新的HTTP连接,这要归功于Solr客户端库的编写方式.

所以,我的问题是:

  1. cURL可以打开一个keepalive会话吗?
  2. 重用连接需要什么? - 它是否像重用cURL句柄资源一样简单?
  3. 我是否需要设置任何特殊的cURL选项?(例如强制HTTP 1.1?)
  4. 有没有关于cURL keepalive连接的陷阱?这个脚本一次运行几个小时; 我可以使用单个连接,还是需要定期重新连接?

php curl http libcurl keep-alive

59
推荐指数
3
解决办法
7万
查看次数

标签 统计

curl ×1

http ×1

keep-alive ×1

libcurl ×1

php ×1