• Rpc客户端
    • 客户端类型
    • 连接池

    Rpc客户端

    配置个 Rpc客户端也简单

    1. 'rpc'=>[
    2. //提供方名称
    3. 'cloud'=>['register'=>\app\rpc\RPcTestRegister::class, //rpc 注册器
    4. 'host' => 'host', //对方 host
    5. 'client'=>'http2',//提供两种方案 http2 和 http swoole 模式下默认是 http2
    6. 'port'=>80, //端口
    7. 'token' => '123', //密钥
    8. 'timeout'=>5, //超时
    9. 'fuse_time'=>30,//熔断器熔断后多久进入半开状态
    10. 'fuse_fail_count'=>20,//连续失败多少次开启熔断
    11. 'pool'=>['min'=>1, //连接池
    12. 'max'=>10,
    13. 'check'=>30,
    14. 'idle'=>30
    15. ],
    16. ]
    17. ]

    项目需要依赖 Rpc 提供方提供的 接口包使用远程服务就这么简单

    1. $service=Ioc::get(ITestService::class);
    2. $service->test('a','b');

    服务降级


    如果提供方提供的服务降级,不符合你真实的项目需求(正常他们只会写测试的,能用的还真不多),你可能需要自己实现服务降级很简单在 Ioc 里注册下写个降级服务 然后注册下

    1. Ioc::bind(ITestService::class,MyServiceDegrade::class);

    客户端类型


    我们提供了两种方案 长连接 的 http2和短链接的 http,建议正式项目跑 http2类型的

    连接池


    防止客户端对后端服务并发量太高,我们也提供了连接池,连接池技术也基于我们的默认的连接池技术

    上一篇:Rpc服务提供方   下一篇:熔断器与服务降级