一、安装 Yar

pecl install yar
pecl install msgpack

二、确保 php 加载 yar 模块

php -m

三、编写服务器端 Server.php , 在浏览器打开 http://.../Server.php 可见API的介绍如下

<?phpclass API {public function some_method($parameter, $options = "foo") {$info = "welcome, {$parameter}, ".$_SERVER['REMOTE_ADDR'];return json_encode(array('res' => $info));}public function demo() {sleep(1);return "123";}
}

四、编写客户端 Client.php , 编写完毕可 php Client.php 查看结果

<?php$client = new Yar_Client("http://.../Server.php");$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);// $client->SetOpt(YAR_OPT_HEADER, array("hd1: val"));$result = $client->some_method("panguangyu");print_r($result) // 会显示Server.php中some_method方法执行的结果

五、并发性测试 MultiClient.php , 编写完毕可 php MultiClient.php 查看结果

<?phpfunction callback($retval, $callinfo) {echo "success\n";var_dump($retval);var_dump($callinfo);
}function error_callback($type, $error, $callinfo) {echo "error\n";error_log($error);
}Yar_Concurrent_Client::call("http://.../Server.php", "demo", array(), "callback", "error_callback");Yar_Concurrent_Client::call("http://.../Server.php", "demo", array(), "callback", "error_callback");Yar_Concurrent_Client::call("http://.../Server.php", "demo", array(), "callback", "error_callback");Yar_Concurrent_Client::loop();

六、更多参考 : https://github.com/laruence/yar

Yar 搭建 RPC 服务相关推荐

  1. brpc源码解析(一)—— rpc服务添加以及服务器启动主要过程

    目录 1.往Server里添加Service(业务代码) 2.设置服务器参数 3.启动服务器 平时的工作用到了baidu-rpc搭建rpc服务,作为戈君大神的大作,在没有开源的时候,这个c++ 的rp ...

  2. NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成...

    原文:NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成 本篇内容属于非实用性(拿来即用)介绍,如对框架设计没兴趣的朋友,请略过. 快一个月没有写博 ...

  3. fguillot json rpc_使用Hyperf框架搭建jsonrpc服务

    一.开发项目划分与搭建JSON RPC 是一种基于 JSON 格式的轻量级的 RPC 协议标准,易于使用和阅读.在 Hyperf 里由 hyperf/json-rpc 组件来实现,可自定义基于 HTT ...

  4. python与rpc服务

    什么是rpc 随着企业 IT 服务的不断发展,单台服务器逐渐无法承受用户日益增长的请求压力时,就需要多台服务器联合起来构成「服务集群」共同对外提供服务. 同时业务服务会随着产品需求的增多越来越肿,架构 ...

  5. 【.NET Core项目实战-统一认证平台】第十六章 网关篇-Ocelot集成RPC服务

    一.什么是RPC RPC是"远程调用(Remote Procedure Call)"的一个名称的缩写,并不是任何规范化的协议,也不是大众都认知的协议标准,我们更多时候使用时都是创建 ...

  6. Axis2搭建WebService服务

    使用Axis2搭建WebService服务 文章目录 一.服务端部署 1.1 在web.xml配置文件中添加映射路径: 2. 创建目录及文件 3. 新建服务接口 4. 新建接口实现类 5. 发布服务 ...

  7. 技术实践:教你用Python搭建gRPC服务

    摘要:gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf序列化协议开发,且支持众多开发语言. 本文分享自华为云社区& ...

  8. SpringCloud入门总结 + 使用SpringCloud搭建微服务项目

    SpringCloud 1.认识微服务 2.认识spring Cloud 3.Spring Cloud Eureka 服务发现框架 3.1认识Eureka 3.2 实战--开发并部署Eureka Se ...

  9. 15.4 xshell使用xftp传输文件 15.5 使用pure-ftpd搭建ftp服务

    15.4 xshell使用xftp传输文件 15.5 使用pure-ftpd搭建ftp服务 扩展 vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.com/bbs ...

  10. 跟着狂神学SpringCloud(Rest环境搭建+Eureka服务注册与发现+ribbon+Feign负载均衡+Hystrix+服务熔断+Zuul路由网关+SpringCloud config分布)

    跟着狂神学SpringCloud SpringCloud 回顾之前的知识- JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot ...

最新文章

  1. IOS开发之----异常处理
  2. python数据类型转换方法列表
  3. 【数据结构与算法】递归
  4. 网页性能优化04-函数节流
  5. 人工智能的本质:最优化 (神经网络优化算法python手写实现)
  6. python去年软件排行_2017年编程语言排行榜,Python位居榜首(C语言需求最大)
  7. matlab 三维 作图 坐标轴_MATLAB学习——MATLAB中的三维绘图指令
  8. LeetCode 28. 实现 strStr() (java)
  9. 尚硅谷全套课件整理:Java、前端、大数据、安卓、面试题
  10. 数据结构与算法python—5.队列及python实现与leetcode总结
  11. 【现代软件工程】6月中旬团队项目心得
  12. UI自动化测试之元素定位
  13. esp32+超声波传感器测距
  14. 个人如何申请支付宝支付接口(免签约支付)
  15. JavaScript学习记录四
  16. 雷霆战机服务器维护公告,雷霆战机停服公告 4月11日服务器维护
  17. Android app性能优化解决卡慢顿之布局优化
  18. coursera 吴恩达四卷积神经网络第四周 Art Generation with Neural Style Transfer
  19. class.forName
  20. Android 检查当前wifi是否可以有网,可以访问网络

热门文章

  1. c++双向列表释放_SAIL-C-R-T4-A1-V0-B1温度控制仪-老友网
  2. 东南大学计算机考研面试题,东南大学复试常问问题今天的模拟面试总结
  3. 赛码网刷题python
  4. Android 启动过程介绍
  5. 关于DMZ区介绍及相关策略
  6. 【搬运】罗霸道网文写作经验分享
  7. 如何解决推荐系统中的冷启动问题?
  8. 金蝶EAS BOS工作流开发(附带JAVA脚本)
  9. winpe修复计算机无法启动,巧用PE修复系统启动故障
  10. 百度关闭快照删除更新入口