RPC

一个启动命令完成rpc服务!!不与其他业务冲突!!用途,做soa服务化管理时。用于分布式。
依赖:Swoole 最新支持到v1.9.10

1.启用config/app.php 中的serviceProviders里面的RpcServiceProvider

2.配置config/rpc.php文件

<?php
return [

    'cache_dir' => 'runtime/rpc',

    'current_server' => 'tcp',

    'server' => [
        //连接类型
        'tcp' => [

            'host' => '0.0.0.0',
            'port' => '9396',
        ]
    ],

    'setting' => [
        //'daemonize' => true,
        'worker_num' => 25,    //worker process num
        'backlog' => 128,   //listen backlog
        'max_request' => 2000,
        'heartbeat_idle_time' => 30,
        'heartbeat_check_interval' => 10,
        'dispatch_mode' => 3,
    ],
];

3.rpc服务启动

服务启动 php rpc_server.php &

服务热重启 php rpc_server.php -s reload
  • 注意服务会默认开放src/Services下面所有服务的公有函数的调用

4.client调用服务

    //指调用User模块下UserService 的getUser方法, 最后跟上参数
    $res = \Rpc::call('User:User', 'getUser', [1]);
    //也可以这样
    $res = \Rpc::service('User:User')->getUser(1);

    //错误返回false
    var_dump($res);

results matching ""

    No results matching ""