软件简介

一款使用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

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);

workerman json mysql_workerman-json-rpc相关推荐

  1. javascript json和json字符串互转

    javascript json和json字符串互转 <!DOCTYPE html> <html lang="en"><head><meta ...

  2. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)...

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  3. Newtonsoft.Json(Json.net)的基本用法

    Newtonsoft.Json(Json.net)的基本用法 添加引用: 使用NuGet,命令:install-package Newtonsoft.Json 实体类: public class Bo ...

  4. javascript 数组和对象的浅复制和深度复制 assign/slice/concat/JSON.parse(JSON.stringify())...

    javascript 数组和对象的浅度复制和深度复制 在平常我们用 '='来用一个变量引用一个数组或对象,这里是'引用'而不是复制下面我们看一个例子引用和复制是什么概念 var arr=[1,2,3, ...

  5. 使用JSON.parse(),JSON.stringify()实现对对象的深拷贝

    使用JSON.parse(),JSON.stringify()实现对对象的深拷贝 根据不包含引用对象的普通数组深拷贝得到启发,不拷贝引用对象,拷贝一个字符串会新辟一个新的存储地址,这样就切断了引用对象 ...

  6. python 编码文件json.loads json.dumps

    python 编码文件json.loads json.dumps import yaml d = {'name': '张三', 'age': '1'} print d jd = json.dumps( ...

  7. js 数组、对象转json 以及json转 数组、对象

    1.JS对象转JSON 方式:JSON.stringify(obj) var json = {"name":"iphone","price" ...

  8. 十分钟搞懂JSON(JSON对象---JSON字符串---对象 之间的区别)

    好记性不如烂笔头,相信我,看了之后你会彻底搞懂JSON 前言:前天被JSON对象,JSON字符串,JAVA对象搞混了,不知道各自代表的意思,我就查了资料,总结为一篇博文. 另外我想List<Us ...

  9. android 数组指针异常,Android JSON解析Json数组是[]在解析时抛出空指针异常,如何以正确的方式写入?...

    我有复杂的API,我解析并显示在列表视图中,我将努力解析JSONArray.Here我将在斗争之后Json数组这是在帖子json对象"tags_name":["Activ ...

  10. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

最新文章

  1. [iOS]过渡动画之高级模仿 airbnb
  2. 曙光高性能服务器,曙光高性能进入世界前十_中科曙光服务器_服务器知识学堂-中关村在线...
  3. boost::mp11::mp_take相关用法的测试程序
  4. winform进度条实现
  5. php 时间选择,PHP-在学说2中的日期之间选择条目
  6. crc错误 modbus poll_干货丨从Modbus开始说现场总线!
  7. MySQL的jar包下载
  8. 小米wifi怎么创建虚拟服务器,小米路由器玩法:一键安装LLMP 建自己的网站
  9. 线路,数据通路,数据总线的关系
  10. 在java中获取全年的节假日(包含周末和法定节假日及调休日)
  11. 网易云音乐html代码报告,网易云音乐H5案例欣赏:你的2017年度听歌报告
  12. [SV]SystemVerilog Structured Procedures --- always_comb、always_ff、always_latch
  13. mysql删除多表视图数据,【杂谈】怎样删除mysql数据表视图中数据
  14. ArcGIS基础知识之shape文件的构成
  15. CSS中hover出现不生效的几个原因 ?
  16. 前端埋点和后端埋点能分开使用吗?【数据埋点介绍】
  17. 我把SpringBoot的banner换成了美女;老板:工作不饱和,建议加班
  18. 插件3-滑动验证(geetest)
  19. 手机使用打印机打印方法须知
  20. 1-1、惠普DL380 配置bios,raid

热门文章

  1. web3.js_1.x.x--API(一)event/Constant/deploy/options
  2. 皮肤可配置化:变量、样式分离
  3. mac中apache服务器及虚拟主机配置
  4. JAVA 框架-Spring
  5. h5启动原生APP总结
  6. 关于代码手写UI,xib和StoryBoard
  7. 录制caf 转 mp3
  8. 无线智能路由器家长控制宽带
  9. 中大计算机考研复试刷人太狠,中山大学考研复试被刷原因大盘点!
  10. openssl不是内部或外部命令_OpenSSL新架构蓝图