rpc实现模式

2018/6/25 posted in  RPC

service接口和dto放到一个独立的包中,方便客户端和服务端使用

客户端拿到service接口后,典型处理步骤如下

  1. 通过代理创建一个service对象供客户端使用
  2. 客户端在调用这个service的方法后,rpc客户端将把这个方法调用转成http调用,发送到服务端
  3. 为了能够定位到服务端上对应的service和方法,调用参数一般会带上service的名称和方法名,以及参数列表,比如:
{
    "method":"my\class\namespace\MyClass.test1",
    "params":[
        "param1",
        "param2",
        "param3"
    ]
}

这个my\class\namespace\MyClass就是service类接口,test1是方法

注意:客户端只有service接口,没有这个接口的实现,这个接口的实现在服务端,需要通过http请求到服务端获取这个service的实现返回的结果

服务端需要解析这个客户端发来的service接口和方法

  1. 通过service接口到容器中拿到这个service的实例(服务端是有这个service的实例了)
  2. 调用这个service实例对象的方法,并将参数传递进去,最后将这个方法返回的结果返回给客户端