Rpc服务提供方
让你的程序提供 Rpc能力很简单配置
'rpc_service'=>[
'token'=>'密钥',
]
这样就可以了,
下面开始编程
Rpc 接口包
在自己项目外在开个项目(包), 这个包Rpc提供方的项目和 使用 Rpc 使用方的项目,都会依赖于这个包
包结构如下
接口
interface ITestService {
public function test($name,$age);
}
降级服务
class TestServiceDegrade implements ITestService {
public function test($name, $age) {
return '我是降级服务,当服务不可用时会调用我';
}
}
Rpc注册器
class TestRpcRegister implements RpcRegister {
//返回 [接口1=>降级服务1,
// 接口2=>降级服务2
// ]
//如果懒提供方不提供降级服务
//返回 [接口1=>降级服务1,
// 接口2, //服务2没有降级服务
// 接口3=>降级服务3,
// ]
public function register() {
return [
ITestService::class=>TestServiceDegrade::class
];
}
}
下面在自己项目里写接口实现
写实现
注意必须实现RPCable接口声明该类是对外提供的
class TestServiceImpl implements ITestService ,RPCable {
public function test($name, $age) {
return '我是提供方';
}
}
注入到 Ioc里
Ioc::bind(ITestService::class,TestServiceImpl::class);