Authored by 郝肖肖

分流数据从缓存中读取

... ... @@ -34,18 +34,6 @@ class Yohobuy
'h5' => 'fd4ad5fcfa0de589ef238c0e7331b585',
);
//分流服务器接口
public static $interfaceShunt = array(
'tencentServers' => array(
'api' => array('123.206.1.98', '123.206.2.80'),
'service' => array('123.206.1.98', '123.206.2.80')
),
'awsServers' => array(
'api' => 'app-java-168863769.cn-north-1.elb.amazonaws.com.cn',
'service' => 'service-yoho-579825100.cn-north-1.elb.amazonaws.com.cn'
)
);
/**
* 取得当前的客户端类型
*/
... ... @@ -159,6 +147,13 @@ class Yohobuy
$isService = true;
$url = self::_getUrl($url, $data);
}
//$url 返回为空,走原先的url
if (empty($url)) {
$isApi = false;
$isService = false;
$url = $urlBack;
}
}
// 销毁私钥参数
... ... @@ -306,6 +301,13 @@ class Yohobuy
$isService = true;
$url = self::_getUrl($url, $data);
}
//$url 返回为空,走原先的url
if (empty($url)) {
$isApi = false;
$isService = false;
$url = $urlBack;
}
}
$ch = curl_init($url);
... ... @@ -667,10 +669,18 @@ class Yohobuy
*/
private static function _getUrl($url, $param)
{
if (USE_INTER_FACE_SHUNT === false) {
return $url;
if (USE_CACHE === fasle || USE_INTER_FACE_SHUNT === false) {
return false;
}
$interfaceShunt = Cache::get('INTERFACE_SHUT_KEY', 'master');
if (empty($interfaceShunt)) {
return false;
}
$interfaceShunt = json_decode($interfaceShunt, true);
$uid = 0;
$mod = 0;
... ... @@ -680,20 +690,67 @@ class Yohobuy
}
if ($mod > 128 || $uid === 0) {
$paseUrl = parse_url($url);
if (strpos($url, 'api.')) {
$url = 'http://' . self::$interfaceShunt['awsServers']['api'] . rtrim($paseUrl['path'], '/') . '/';
if (empty($interfaceShunt['aws']) || empty($interfaceShunt['aws']['api.yoho.cn'])) {
return false;
}
$num = array_rand($interfaceShunt['aws']['api.yoho.cn']);
if (empty($interfaceShunt['aws']['api.yoho.cn'][$num]['ip'])) {
return false;
}
$url = 'http://' . $interfaceShunt['aws']['api.yoho.cn'][$num]['ip'] . rtrim($paseUrl['path'], '/') . '/';
} else if (strpos($url, 'service.')) {
$url = 'http://' . self::$interfaceShunt['awsServers']['service'] . rtrim($paseUrl['path'], '/') . '/';
if (empty($interfaceShunt['aws']) || empty($interfaceShunt['aws']['service.yoho.cn'])) {
return false;
}
$num = array_rand($interfaceShunt['aws']['service.yoho.cn']);
if (empty($interfaceShunt['aws']['service.yoho.cn'][$num]['ip'])) {
return false;
}
$url = 'http://' . $interfaceShunt['aws']['service.yoho.cn'][$num]['ip'] . rtrim($paseUrl['path'], '/') . '/';
}
} else {
$paseUrl = parse_url($url);
if (strpos($url, 'api.')) {
$num = array_rand(self::$interfaceShunt['tencentServers']['api']);
$url = 'http://' . self::$interfaceShunt['tencentServers']['api'][$num] . rtrim($paseUrl['path'], '/') . '/';
if (empty($interfaceShunt['tencent']) || empty($interfaceShunt['tencent']['api.yoho.cn'])) {
return false;
}
$num = array_rand($interfaceShunt['tencent']['api.yoho.cn']);
if (empty($interfaceShunt['tencent']['api.yoho.cn'][$num]['ip'])) {
return false;
}
$url = 'http://' . $interfaceShunt['tencent']['api.yoho.cn'][$num]['ip'] . rtrim($paseUrl['path'], '/') . '/';
} else if (strpos($url, 'service.')) {
$num = array_rand(self::$interfaceShunt['tencentServers']['service']);
$url = 'http://' . self::$interfaceShunt['tencentServers']['service'][$num] . rtrim($paseUrl['path'], '/') . '/';
if (empty($interfaceShunt['tencent']) || empty($interfaceShunt['tencent']['service.yoho.cn'])) {
return false;
}
$num = array_rand($interfaceShunt['tencent']['service.yoho.cn']);
if (empty($interfaceShunt['tencent']['service.yoho.cn'][$num]['ip'])) {
return false;
}
$url = 'http://' . $interfaceShunt['tencent']['service.yoho.cn'][$num]['ip'] . rtrim($paseUrl['path'], '/') . '/';
}
}
... ...