我有一个设置,我有两个服务器运行瘦客户端(Apache,
PHP).在服务器A上,它考虑客户端计算机并连接到服务器B以通过Restful API获取数据.两台服务器都在同一网络上.在服务器B上,请求的响应如下所示:
{
"code": 200,
"response_time": {
"time": 0.43,
"measure": "seconds"
}
}
服务器B通过使用微秒来标记请求块的开始和结束来计算每个任务的完成时间.但是当我在服务器A上使用curl来调用服务器B时,我在执行时间方面得到了非常奇怪的结果:
$url = "https://example.com/api";
/*server B address. I've tried IP address as well without any change in results.
This must go over a SSL connection. */
$start_time = microtime(true);
$curl2 = curl_init();
curl_setopt($curl2, CURLOPT_URL, $url);
curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl2, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl2, CURLOPT_USERAGENT, "Server A User Agent");
$result = curl_exec($curl2);
$HttpCode = curl_getinfo($curl2, CURLINFO_HTTP_CODE);
$total_time = curl_getinfo($curl2, CURLINFO_TOTAL_TIME);
$connect_time = curl_getinfo($curl2, CURLINFO_CONNECT_TIME);
$namelookup_time = curl_getinfo($curl2, CURLINFO_NAMELOOKUP_TIME);
$end_time = microtime(true);
$timeDiff = round(((float)$end_time - (float)$start_time), 3);
每次时间检查都会得到以下信息:
$timeDiff = 18.7381 (Using Microseconds)
$total_time = 18.7381 (Transfer Time)
$connect_time = 0.020679
$namelookup_time = 0.004144
所以我不确定为什么会这样.有没有更好的方法从网络中另一台拥有API的服务器获取数据?如果Twitter的Site从另一台不是API服务器的服务器上消耗他们的API就好了.我认为,卷曲到API的时间与API报告的时间非常相似.我知道API没有考虑网络流量和打开连接的速度 – 但是对于我而言,18秒对0.43似乎很奇怪.
这里有什么想法?