Dora RPC

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

Dora RPC 是一款基础于Swoole定长包头通讯协议的最精简的RPC。

  • 此RPC基础于Swoole定长包头通讯协议的最精简的RPC

  • 支持并发\单调,异步\同步

  • 目前只提供PHP语言版本,后续还会根据使用建议逐渐迭代

  • 可以很方便快速的搭建后端应用服务器

  • 此开源用于快速实现RPC的基础,根据需要进行调配,用于PHP前后端服务器间RPC

  • 后续将配套中间件及服务降级

  • 基础swoole,性能较好可供大中型网站使用

客户端代码:

$obj = new DoraRPCClient();
for ($i = 0; $i < 100000; $i++) {
    #single
    $ret = $obj->singleAPI("abc", array(234, $i), true);
    var_dump($ret);

    #multi
    $data = array(
        "oak" => array("name" => "oakdf", "param" => array("dsaf" => "321321")),
        "cd" => array("name" => "oakdfff", "param" => array("codo" => "fds")),
    );
    $ret = $obj->multiAPI($data, false);
    var_dump($ret);
}

服务器端:

$server = new DoraRPCServer();//这里必须是DoraRPCServer继承类并实现dowork才可以工作
  • Dora-RPC端午升级,目前master还在beta版本增加了大量的特性。 项目线上已经有几家公司平稳使用一年多了,当然他们是以此为原型进行了一定改造。最近升级改进了很多,如去掉unique函数导致性能翻倍,发现服务端有个别函数会被重复执行问题目前都已经修复,另外增加了异步任务拿回结果。目前groupclient也在改造,稍晚会将groupclient的功能集成到client内而不是两个客户端。

  • Dora-RPC发布快两年了,一直有人要求我写一个详尽的介绍,今天突然想起这个事情。 开始写一些关于他的介绍: Dora-RPC源于我之前工作的一家公司内的一些经历。 对于我们开发来说使用PHP很少做大型的复杂的软件,因为开始的时候我们会下意识的将项目拆分开。 通过各种各样的API相互调用、以此避免过于庞大的代码维护和跨部门调用。 而我在的公司在创业初期时(模板嵌入代码的风格)一直在快速迭代的项目

  • 症状 在执行下列任一基于服务器的任务时,可能收到“RPC server is unavailable(RPC服务器不可用)”错误信息: • 复制 • Winlogon • 启用受信任的关系 • 连接到域控制器 • 连接到受信任的域 • 用户身份验证 注意:在成员服务器上运行 Dcpromo 时也可能出现“RPC server is unavailable”错误。如果只有一台 DC,并且

 相关资料
  • 随着分布式技术和微服务思想流行,技术公司逐步将服务拆分为独立运行的小模块,提高系统整体的健壮性,加快特性的演进速度。微服务通过定义完善的接口进行交互,解耦系统、敏捷迭代、方便服务治理。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通信

  • Uragano 旨在提供一个搭建和使用简单的高性能 RPC 框架。Uragano 是基于 netstandard2.0 开发的。Uragano 默认采用 DotNetty 实现远程通信,使用 MessagePack 进行编解码。

  • Flex提供RPC服务以向客户端提供服务器端数据。 Flex为服务器端数据提供了相当大的控制。 使用Flex RPC服务,我们可以定义要在服务器端执行的用户操作。 Flex RPC Sservices可以与任何服务器端技术集成。 其中一个Flex RPC服务提供内置支持,可以通过线路传输压缩二进制数据,速度非常快。 Flex提供以下三种类型的RPC服务 S.No RPC服务和描述 1 HttpSe

  • 基于GWT的应用程序通常由客户端模块和服务器端模块组成。 客户端代码在浏览器中运行,服务器端代码在Web服务器中运行。 客户端代码必须在网络上发出HTTP请求才能访问服务器端数据。 RPC,远程过程调用是GWT使用的机制,其中客户端代码可以直接执行服务器端方法。 GWT RPC是基于servlet的。 GWT RPC是异步的,客户端在通信期间从不被阻止。 使用GWT RPC Java对象可以直接在

  • RPC

    RPC文档托管在这里: https://tendermint.com/rpc/ 若要更新文档,可以在 rpc/core 目录 编辑相关的 godoc 注释。