Rpc服务提供方

让你的程序提供 Rpc能力很简单配置

  1. 'rpc_service'=>[
  2. 'token'=>'密钥',
  3. ]

这样就可以了,

下面开始编程

Rpc 接口包

在自己项目外在开个项目(包), 这个包Rpc提供方的项目和 使用 Rpc 使用方的项目,都会依赖于这个包

包结构如下Rpc服务提供方 - 图1

接口

  1. interface ITestService {
  2. public function test($name,$age);
  3. }

降级服务

  1. class TestServiceDegrade implements ITestService {
  2. public function test($name, $age) {
  3. return '我是降级服务,当服务不可用时会调用我';
  4. }
  5. }

Rpc注册器

  1. class TestRpcRegister implements RpcRegister {
  2. //返回 [接口1=>降级服务1,
  3. // 接口2=>降级服务2
  4. // ]
  5. //如果懒提供方不提供降级服务
  6. //返回 [接口1=>降级服务1,
  7. // 接口2, //服务2没有降级服务
  8. // 接口3=>降级服务3,
  9. // ]
  10. public function register() {
  11. return [
  12. ITestService::class=>TestServiceDegrade::class
  13. ];
  14. }
  15. }

下面在自己项目里写接口实现

写实现

注意必须实现RPCable接口声明该类是对外提供的
  1. class TestServiceImpl implements ITestService ,RPCable {
  2. public function test($name, $age) {
  3. return '我是提供方';
  4. }
  5. }

注入到 Ioc里

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

上一篇:Rpc 远程调用   下一篇:Rpc客户端