RPC

这里是将SdTcpRpcPool进行了再次封装,需要注意client.php中需要有名为consul的配置方案。

//用于consul微服务的rpc配置
$config['tcpClient']['consul']['set'] = [
    'open_length_check' => 1,
    'package_length_type' => 'N',
    'package_length_offset' => 0,       //第N个字节是包长度的值
    'package_body_offset' => 0,       //第几个字节开始计算长度
    'package_max_length' => 2000000,  //协议最大长度
];

服务提供商代码MathService

/**
 * RPC Add
 * @param $one
 * @param $two
 */
public function add($one,$two)
{
    $this->send($one+$two);
}

服务调用方代码

public function http_testRPC()
{
    $rest = ConsulServices::getInstance()->getRPCService('MathService', $this->context);
    $reuslt = yield $rest->add(1, 2);
    $this->http_output->end($reuslt);
}

可以通过call函数实现oneway

$rest = ConsulServices::getInstance()->getRPCService('MathService', $this->context);
$reuslt = yield $rest->call('add',[1, 2],true);
$this->http_output->end($reuslt);

results matching ""

    No results matching ""