• Rpc服务提供方
    • Rpc 接口包
      • 接口
      • 降级服务
      • Rpc注册器
    • 下面在自己项目里写接口实现

    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客户端