Yar RPC 框架安装与基础使用

栏目: 服务器 · 发布时间: 5年前

内容简介:[TOC]Yar 它是一个 RPC 框架。所以,也具备 RPC 的特性。RPC 框架最终实现了业务的解耦。比如,我们一个庞大的应用,有用户中心、订单中心、物流中心等模块。并且这些模块在长年累月经过不同的人迭代之后,变得异常难以维护。此时,我们可以 RPC 方案进行解耦。然后,在老模块进行调用。

[TOC]

Yar RPC 框架使用指南

Yar 是一个轻量级, 高效的 RPC 框架, 它提供了一种简单方法来让 PHP 项目之间可以互相远程调用对方的本地方法。并且 Yar 也提供了并行调用的能力。可以支持同时调用多个远程服务的方法。

Yar 它是一个 RPC 框架。所以,也具备 RPC 的特性。RPC 框架最终实现了业务的解耦。比如,我们一个庞大的应用,有用户中心、订单中心、物流中心等模块。并且这些模块在长年累月经过不同的人迭代之后,变得异常难以维护。此时,我们可以 RPC 方案进行解耦。然后,在老模块进行调用。

其次,Yar 框架还具备并行请求的功能。即同时可以发起多个请求,然后统一回调。整体用时取决于请求中最长用时的请求。

基于这些特性,我们可以把不同的模块进行拆分分开部分。然后,通过 RPC 方式提供服务。从而达到高并发高吞吐分布式的要求。千万上亿的 PV 毫无压力。

一、安装 Msgpack 扩展

Yar 支持 msgpackjsonphp 三种打包协议。 msgpack 打包协议,相对其他两种打包协议更高效。所以,推荐使用 msgpack 打包协议。

$ wget https://pecl.php.net/get/msgpack-2.0.3.tgz
$ tar zxvf msgpack-2.0.3.tgz
$ cd msgpack-2.0.3
$ phpize
$ ./configure
$ make && make install

扩展安装成功之后。还需要在 php.ini 文件中追加如下两行:

[msgpack]
extension = msgpack.so

二、安装 Yar 扩展

$ wget https://pecl.php.net/get/yar-2.0.5.tgz
$ tar zxvf yar-2.0.5.tgz
$ cd yaf-2.0.5
$ phpize
$ ./configure --enable-msgpack
$ make && make install

由于我们使用了 msgpack 打包协议。所以,我们在 ./configure 后面增加了 --enable-msgpack 。如果不加,则无法使用 msgpack 协议。即使,我们已经正确安装了该扩展。

php.ini 增加:

[yar]
extension = yar.so

三、RPC 示例

3.1 Server 端示例

<?php

class Operator {

    /**
     * Add two operands
     * @param intergr 
     * @return intergr
     */
    public function add($a, $b) {
        return $this->_add($a, $b);
    }

    /**
     * Sub 
     */
    public function sub($a, $b) {
        return $a - $b;
    }

    /**
     * Mul
     */
    public function mul($a, $b) {
        return $a * $b;
    }

    /**
     * Protected methods will not be exposed
     * @param intergr 
     * @return intergr
     */
    protected function _add($a, $b) {
        return $a + $b;
    }
}

$server = new Yar_Server(new Operator());
$server->handle();

查看示例:

假设,访问 Operator.php 访问地址为 http://local.test.com/rpc/server/Operator.php 。 那么,此时访问该地址会出现相应的文档。

Yar RPC 框架安装与基础使用

3.2 Client 端示例

<?php
$client = new yar_client("http://local.test.com/rpc/server/operator.php");

/* call directly */
var_dump($client->add(1, 2));

/* call via call */
var_dump($client->call("add", array(3, 2)));


/* __add can not be called */
// var_dump($client->_add(1, 2));

此时,我们通过浏览器直接访问这个脚本会得到具体的运算结果。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

集体智慧编程

集体智慧编程

TOBY SEGARAN / 莫映、王开福 / 电子工业出版社 / 2009-1 / 59.80元

本书以机器学习与计算统计为主题背景,专门讲述如何挖掘和分析Web上的数据和资源,如何分析用户体验、市场营销、个人品味等诸多信息,并得出有用的结论,通过复杂的算法来从Web网站获取、收集并分析用户的数据和反馈信息,以便创造新的用户价值和商业价值。全书内容翔实,包括协作过滤技术(实现关联产品推荐功能)、集群数据分析(在大规模数据集中发掘相似的数据子集)、搜索引擎核心技术(爬虫、索引、查询引擎、Page......一起来看看 《集体智慧编程》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具