在spring boot中3分钟上手RPC框架Dubbo

官方提供的demo太多,内容也很详细,资料也多,导致不易快速上手,以下是我根据官方文档整理出来的快速上手步骤

首先rpc调用都需要有注册中心,zookeeper, nacos,redis等都可以拿来作为注册中心
这里为了演示方便我们还是拿经典的zookeeper做演示

完整代码已上传github:https://github.com/neatlife/my-dubbo-spring-boot
下载后启动zookeeper即可运行

获取一个可用的zookeeper实例

可以使用docker启动zookeeper,比如 docker-compose-single.yml

version: '3.1'

services:
    zoo:
        image: 31z4/zookeeper
        restart: always
        hostname: zoo1
        ports:
            - 2181:2181

然后执行docker-compose -f docker-compose-single.yml up -d命令启动zookeeper实例

Read more   2019/4/29 posted in  RPC 三分钟系列

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实例对象的方法,并将参数传递进去,最后将这个方法返回的结果返回给客户端
2018/6/25 posted in  RPC