include_once 'yourClientDir/RpcClient.php';
// 服務(wù)端列表
$address_array = array(
'tcp://127.0.0.1:2015',
'tcp://127.0.0.2:2015'
);
// 配置服務(wù)端列表
RpcClient::config($address_array);
$uid = 567;
$user_client = RpcClient::instance('User');
// 異步調(diào)用User::getInfoByUid方法
$user_client->asend_getInfoByUid($uid);
// 異步調(diào)用User::getEmail方法
$user_client->asend_getEmail($uid);
這里是其它的業(yè)務(wù)代碼
....................
....................
// 需要數(shù)據(jù)的時(shí)候異步接收數(shù)據(jù)
$ret_async1 = $user_client->arecv_getEmail($uid);
$ret_async2 = $user_client->arecv_getInfoByUid($uid);
上面是官方的測(cè)試代碼:
如果getInfoByUid執(zhí)行需要2秒,getEmail執(zhí)行需要3秒
理想的結(jié)果:整個(gè)流程執(zhí)行完需要3秒
測(cè)試的結(jié)果:整個(gè)流程執(zhí)行完需要5秒
問下是什么原因呀?
加上了$worker->reusePort=true;就可以了。大佬可以講下什么原因么?難道沒有開端口復(fù)用,服務(wù)端會(huì)分配到同一個(gè)子進(jìn)程去處理么?