Rpc客户端
配置个 Rpc客户端也简单
'rpc'=>[
//提供方名称
'cloud'=>['register'=>\app\rpc\RPcTestRegister::class, //rpc 注册器
'host' => 'host', //对方 host
'client'=>'http2',//提供两种方案 http2 和 http swoole 模式下默认是 http2
'port'=>80, //端口
'token' => '123', //密钥
'timeout'=>5, //超时
'fuse_time'=>30,//熔断器熔断后多久进入半开状态
'fuse_fail_count'=>20,//连续失败多少次开启熔断
'pool'=>['min'=>1, //连接池
'max'=>10,
'check'=>30,
'idle'=>30
],
]
]
项目需要依赖 Rpc 提供方提供的 接口包使用远程服务就这么简单
$service=Ioc::get(ITestService::class);
$service->test('a','b');
服务降级
如果提供方提供的服务降级,不符合你真实的项目需求(正常他们只会写测试的,能用的还真不多),你可能需要自己实现服务降级很简单在 Ioc 里注册下写个降级服务 然后注册下
Ioc::bind(ITestService::class,MyServiceDegrade::class);
客户端类型
我们提供了两种方案 长连接 的 http2和短链接的 http,建议正式项目跑 http2类型的
连接池
防止客户端对后端服务并发量太高,我们也提供了连接池,连接池技术也基于我们的默认的连接池技术