Yar

并行的RPC框架
授权协议 PHP license
开发语言 C/C++ PHP
所属分类 Web应用开发、 RPC/XMLRPC项目
软件类型 开源软件
地区 国产
投 递 者 林蕴藉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Yar 是一个支持多种打包协议的, 并行的RPC框架.

它基于HTTP协议, 在libcurl基础上开发而成

简单的Server:

  1. class API {
  2.     /**
  3. * the doc info will be generated automatically into service info page.
  4. * @params
  5. * @return
  6. */
  7.     public function api($parameter, $option = "foo") {
  8.     }
  9.  
  10.     protected function client_can_not_see() {
  11.     }
  12. }
  13.  
  14. $service = new Yar_Server(new API());
  15. $service->handle();
  16. ?>

简单调用:

  1. $client = new Yar_Client("http://host/api/");
  2. $result = $client->api("parameter);
  3. ?>

并行调用:

  1. function callback($retval, $callinfo) {
  2.      var_dump($retval);
  3. }
  4.  
  5. Yar_Concurrent_Client::call("http://host/api/", "api", array("parameters"), "callback");
  6. Yar_Concurrent_Client::call("http://host/api/", "api", array("parameters"), "callback");
  7. Yar_Concurrent_Client::call("http://host/api/", "api", array("parameters"), "callback");
  8. Yar_Concurrent_Client::call("http://host/api/", "api", array("parameters"), "callback");
  9. Yar_Concurrent_Client::loop(); //send
  10. ?>

更多信息参看: Yar at Github

  • 一、yar什么 Yar是并行的RPC框架(Concurrent RPC framework),Laruence开发。 二、安装yar yar全部可用版本见:https://pecl.php.net/package/yar,根据自己的需要下载编译安装即可。 注:yar和PHP版本不一致会导致编译失败,如果出现编译失败请下载其他版本的yar重新编译 # wget https://pecl.php.ne

  • Yar轻量级、可串行也可并行、可通过get方法查看接口列表和注释,只需要把接口信息整理好,就能在查看接口的时候同时查看接口文档了。 Yar是啥 轻量级、并行php RPC框架,只支持php程序之间的相互调用。 优点:轻量级、可串行也可并行、可通过get方法查看接口列表和注释,只需要把接口信息整理好,就能在查看接口的时候同时查看接口文档了。 缺点:不支持跨语言调用。 安装 git clone htt

  • 在 yar 中规定的传输协议如下图所示,请求体为82个字节的yar_header_t和8字节的打包名称和请求实体yar_request_t,在yar_header_t里面用body_len记录8字节的打包名称+请求实体的长度;返回体类似,只是实体内容的结构体稍微不同,在reval里面才是实际最后客户端需要的结果。 整个传输以二进制流的形式传送。 在认识 Yar 协议之后,就是在 Java 中实现类

 相关资料
  • Yar 是由 PHP 大神鸟哥创建的一个 PHP 并行高性能 RPC 框架。Yar 可以跨平台使用,不过鸟哥没有提供 Java 的客户端。这次项目中正好需要 Java 来调用 PHP 的 RPC 服务,于是就诞生了 Yar Client for Java。 使用方法很简单: YarClient client = new YarClient("http://localhost/yar.php");I

  • 随着分布式技术和微服务思想流行,技术公司逐步将服务拆分为独立运行的小模块,提高系统整体的健壮性,加快特性的演进速度。微服务通过定义完善的接口进行交互,解耦系统、敏捷迭代、方便服务治理。RPC是目前微服务最广泛的通信方式。然而,众多团队各自研发具备服务治理功能的RPC通信框架,一方面增加开发成本,消耗人力重复造轮子;另一方面不同序列化协议的RPC服务,无法互相通信,影响可用性。因此,通用的RPC通信

  • 对服务开发者, MTransport 屏蔽了底层网络通信细节,从而更专注于业务自身逻辑实现。支持不同语言版本的代码实现, 保持通信协议的一致性,支持服务注册、服务发现、异步通信、负载均衡等丰富的服务治理功能。

  • 主要内容:1.RPC流水线工程,2.RPC 技术选型,3.如何设计 RPC1.RPC流水线工程 ① Client以本地调用的方式调用服务 ② Client Stub接收到调用后,把服务调用相关信息组装成需要网络传输的消息体,并找到服务地址(host:port),对消息进行编码后交给Connector进行发送 ③ Connector通过网络通道发送消息给Acceptor ④ Acceptor接收到消息后交给Server Stub ⑤ Server Stub对消息进行解码,

  • 随着分布式技术和微服务思想流行,技术公司逐步将服务拆分为独立运行的小模块,提高系统整体的健壮性,加快特性的演进速度。微服务通过定义完善的接口进行交互,解耦系统、敏捷迭代、方便服务治理。RPC是目前微服务最广泛的通信方式。然而,众多团队各自研发具备服务治理功能的RPC通信框架,一方面增加开发成本,消耗人力重复造轮子;另一方面不同序列化协议的RPC服务,无法互相通信,影响可用性。因此,通用的RPC通信