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服务提供方   下一篇:熔断器与服务降级