workerman-json-rpcPHP JSON RPC 框架
一款使用PHP开发的高性能Json Rpc框架,框架使用TCP/IP协议直接传输json数据,系统集成统计监控模块,开发部署维护非常简。workerman-json-rpc 包含了服务端和客户端。
特性:
-
使用PHP开发,与PHP紧密结合
-
PHP多进程,充分利用服务器多cpu资源
-
支持libevent事件轮询库,支持高并发
-
支持服务平滑重启,热升级程序,不影响用户
-
支持PHP文件更新检测及自动加载
-
使用JSON作为协议,开发调试非常方便
-
集成统计监控模块,方便查看服务调用量、成功率、耗时等情况
-
自带PHP客户端,支持异步并发调用,实现并行计算
-
独立运行,不依赖nginx、php-fpm、apache等容器
-
安装部署超级方便,下载解压后启动服务即可使用
启动界面:
自带的监控模块:
服务端开发示例(例如User服务)
创建文件./applications/JsonRpc/Services/User.php
<?php
class User
{
public static function getInfoByUid($uid)
{
// ....
}
public static function getEmail($uid)
{
// ...
}
}
客户端使用示例
客户端同步调用和异步调用
// 配置服务端列表,站点入口统一配置一次即可 RpcClient::config(array( 'tcp://127.0.0.1:2015', 'tcp://127.0.0.1:2015' )); // 获取实例 $user_client = RpcClient::instance('User'); // ====同步调用方法示例==== $ret_sync = $user_client->getInfoByUid($uid); // ==== 异步调用方法示例 ==== // 异步调用User::getInfoByUid方法 $user_client->asend_getInfoByUid($uid); // 异步调用User::getEmail方法 $user_client->asend_getEmail($uid); 这里是其它的业务代码,此时服务端User::getInfoByUid、User::getEmail 两个方法正在并发执行,调用者此时可以继续做其它业务逻辑 .........业务逻辑........... .........业务逻辑........... // 需要数据的时候异步获取数据 $ret_async1 = $user_client->arecv_getEmail($uid); $ret_async2 = $user_client->arecv_getInfoByUid($uid);
评论