通过 yar 初识RPC, 远程调用服务(RPC)和消息队列(Message Queue)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gaokcl/article/details/83150887

php 消息队列:

Yar_Client 使用:

1,Yar_Client : php扩展框架(鸟哥的yar框架),可支持并发的 rpc 框架

通过 yar 初识RPC, 远程调用服务(RPC)和消息队列(Message Queue)

CI框架使用:

defined('MQ_RPC_URL') OR define('MQ_RPC_URL', 'http://mq.xxx.com');

$client = new Yar_Client(MQ_RPC_URL . '/api_xxx.php');

2, Yar_Client官方解释:

Yar_Client::setOpt — 设置调用的配置(设置调用远程服务的一些配置, 比如超时值, 打包类型等.)

<?php

$cient = new Yar_Client("http://host/api/");// 调用远程服务中方法(我的理解)

// Set timeout to 1s = 可选, 设置超时时间, 默认1秒 ​ $client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);

// Set packager to JSON = 设置json包 ​ $client->SetOpt(YAR_OPT_PACKAGER, "json");

/* call remote service */ ​ $result = $client->some_method("parameter");

具体使用: /* call remote service */
$result = $client->report("数据库表", 参数一, 参数二);// report为远程服务中方法 

?>

yar扩展安装:

pecl install yar

vim /etc/php.ini php.ini --> php 配置文件 加上extension=yar.so

查看支持的配置:php --re yar

具体实例:

<?php

defined('MQ_RPC_URL') OR define('MQ_RPC_URL', 'http://mq.xxx.com');

try {

$client = new Yar_Client(MQ_RPC_URL . '/api_xxx.php');

$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);

$result = $client->report("数据库表", 参数一, 参数二);// report为远程服务中方法

} catch (Exception $e) { print $e->getMessage();exit(); } ?>

猜你喜欢

转载自blog.csdn.net/gaokcl/article/details/83150887