Yar 搭建 RPC 服务
一、安装 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 服务相关推荐
- brpc源码解析(一)—— rpc服务添加以及服务器启动主要过程
目录 1.往Server里添加Service(业务代码) 2.设置服务器参数 3.启动服务器 平时的工作用到了baidu-rpc搭建rpc服务,作为戈君大神的大作,在没有开源的时候,这个c++ 的rp ...
- NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成...
原文:NET Core微服务之路:自己动手实现Rpc服务框架,基于DotEasy.Rpc服务框架的介绍和集成 本篇内容属于非实用性(拿来即用)介绍,如对框架设计没兴趣的朋友,请略过. 快一个月没有写博 ...
- fguillot json rpc_使用Hyperf框架搭建jsonrpc服务
一.开发项目划分与搭建JSON RPC 是一种基于 JSON 格式的轻量级的 RPC 协议标准,易于使用和阅读.在 Hyperf 里由 hyperf/json-rpc 组件来实现,可自定义基于 HTT ...
- python与rpc服务
什么是rpc 随着企业 IT 服务的不断发展,单台服务器逐渐无法承受用户日益增长的请求压力时,就需要多台服务器联合起来构成「服务集群」共同对外提供服务. 同时业务服务会随着产品需求的增多越来越肿,架构 ...
- 【.NET Core项目实战-统一认证平台】第十六章 网关篇-Ocelot集成RPC服务
一.什么是RPC RPC是"远程调用(Remote Procedure Call)"的一个名称的缩写,并不是任何规范化的协议,也不是大众都认知的协议标准,我们更多时候使用时都是创建 ...
- Axis2搭建WebService服务
使用Axis2搭建WebService服务 文章目录 一.服务端部署 1.1 在web.xml配置文件中添加映射路径: 2. 创建目录及文件 3. 新建服务接口 4. 新建接口实现类 5. 发布服务 ...
- 技术实践:教你用Python搭建gRPC服务
摘要:gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf序列化协议开发,且支持众多开发语言. 本文分享自华为云社区& ...
- SpringCloud入门总结 + 使用SpringCloud搭建微服务项目
SpringCloud 1.认识微服务 2.认识spring Cloud 3.Spring Cloud Eureka 服务发现框架 3.1认识Eureka 3.2 实战--开发并部署Eureka Se ...
- 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 ...
- 跟着狂神学SpringCloud(Rest环境搭建+Eureka服务注册与发现+ribbon+Feign负载均衡+Hystrix+服务熔断+Zuul路由网关+SpringCloud config分布)
跟着狂神学SpringCloud SpringCloud 回顾之前的知识- JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot ...
最新文章
- IOS开发之----异常处理
- python数据类型转换方法列表
- 【数据结构与算法】递归
- 网页性能优化04-函数节流
- 人工智能的本质:最优化 (神经网络优化算法python手写实现)
- python去年软件排行_2017年编程语言排行榜,Python位居榜首(C语言需求最大)
- matlab 三维 作图 坐标轴_MATLAB学习——MATLAB中的三维绘图指令
- LeetCode 28. 实现 strStr() (java)
- 尚硅谷全套课件整理:Java、前端、大数据、安卓、面试题
- 数据结构与算法python—5.队列及python实现与leetcode总结
- 【现代软件工程】6月中旬团队项目心得
- UI自动化测试之元素定位
- esp32+超声波传感器测距
- 个人如何申请支付宝支付接口(免签约支付)
- JavaScript学习记录四
- 雷霆战机服务器维护公告,雷霆战机停服公告 4月11日服务器维护
- Android app性能优化解决卡慢顿之布局优化
- coursera 吴恩达四卷积神经网络第四周 Art Generation with Neural Style Transfer
- class.forName
- Android 检查当前wifi是否可以有网,可以访问网络