承接 majorbio/rpc 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

majorbio/rpc

Composer 安装命令:

composer require majorbio/rpc

包简介

适用于 Laravel 的 RPC 框架

README 文档

README

  • 基于 workerman 的多进程 RPC 框架
  • 状态可维持,支持多次调用

数据包样本

  • 首部固定 10 个字符长度用来保存整个数据包长度,位数不够左补 0
  • 数据格式为 json 字符串
0000000068{"code":0,"message":"ok","data":["hello world, hello u!"]}

安装

# 安装
composer require majorbio/rpc

# 发布配置文件
php artisan vendor:publish --provider="majorbio\rpc\Providers\RpcServiceProvider"


Server 服务端

一、 配置 /config/rpc.php

<?php

return [
    // 进程的名称
    'name' => env('RPC_NAME', 'MajorbioRpc'),
    // 监听端口
    'port' => env('RPC_PORT', 39000),
    // 启动进程数量
    'count' => env('RPC_WORKER_COUNT', 4),
    // RPC 服务文件命名空间
    'rpcNameSpace' => '\\App\\Rpc\\',
    // 指定 workerman 的 pid 文件
    'pidFile' => storage_path() . '/workerman/rpc/workerman.pid',
    // 指定 workerman 的 log 文件
    'logFile' => storage_path() . '/workerman/rpc/workerman.log',
    // 省略 -d 参数
    'daemonize' => env('RPC_DAEMONIZE', false),
];

二、创建 RPC 服务 /app/Rpc/Calculator.php

<?php

namespace App\Rpc;

use majorbio\helper\RS;

class Calculator
{
    public int $a = 1;
    public int $b = 2;

    /**
     * 设置 a
     *
     * @param int $a
     *
     * @return void
     */
    public function setA(int $a = 0)
    {
        $this->a = $a;
    }

    /**
     * 设置 b
     *
     * @param int $a
     *
     * @return void
     */
    public function setB(int $b = 0)
    {
        $this->b = $b;
    }

    /**
     * 求和
     *
     * @return RS
     */
    public function sum(): RS
    {
        return new RS(0, 'Calculator-sum', ($this->a + $this->b));
    }

    /**
     * 相乘
     *
     * @return int
     */
    public function multiply(): int
    {
        return $this->a * $this->b;
    }
}

三、运行 RPC 服务

php artisan rpc start


Client 客户端

<?php

use majorbio\rpc\Client as RpcClient;

// 创建 RpcClient
$rpcClient = new RpcClient('127.0.0.1', 30106);

// 调用 setA 方法(注意传参是个数组)
$rpcClient->invoke('Calculator', 'setA', [5]);

// 调用 setB 方法(注意传参是个数组)
$rpcClient->invoke('Calculator', 'setB', [3]);

// 调用 sum 方法
var_dump($rpcClient->invoke('Calculator', 'sum'));

// 调用 multiply 方法
var_dump($rpcClient->invoke('Calculator', 'multiply'));

$rpcClient->disconnect();

majorbio/rpc 适用场景与选型建议

majorbio/rpc 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 716 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 02 月 19 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 majorbio/rpc 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 majorbio/rpc 我们能提供哪些服务?
定制开发 / 二次开发

基于 majorbio/rpc 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 716
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-02-19