# RPC调用

这里采用Nacos作为服务发现中心,采用Dubbo组件进行Rpc调用。一般情况下,Jboot RPC 调用需要以下几个步骤:

  1. 定义接口
  2. 编写实现类
  3. 启动 Server(Provider) 暴露服务
  4. 启动客户端、通过 RPC 调用 Server 提供的服务

# 定义公共接口

公共接口需要被 供调用端与服务端引用

public interface BlogService {
    public String findById();
    public List<String> findAll();
}
1
2
3
4

# 服务端暴露

编写接口实现类,并通过注解@RPCBean暴露服务

@RPCBean
public class BlogServiceProvider implements BlogService {

    @Override
    public String findById() {
        return "id from provider";
    }

    @Override
    public List<String> findAll() {
        return Lists.newArrayList("item1","item2");
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 服务端配置

#RPC配置
jboot.rpc.type = dubbo

#dubbo 的通信协议配置
jboot.rpc.dubbo.registry.address = nacos://127.0.0.1:8848
jboot.rpc.dubbo.protocol.name = dubbo
jboot.rpc.dubbo.protocol.port = 0
1
2
3
4
5
6
7

# 客户端调用

通过注解@RPCInject注入接口对象

@RequestMapping("/dubbo")
public class DubboClient extends JbootController{

    @RPCInject
    private  BlogService blogService;

    public void index() {
        System.out.println(blogService);
        renderText("blogId : " + blogService.findById());
    }
}
1
2
3
4
5
6
7
8
9
10
11

# 客户端配置

#RPC配置
jboot.rpc.type = dubbo

#dubbo 的通信协议配置
jboot.rpc.dubbo.registry.address = nacos://127.0.0.1:8848
jboot.rpc.dubbo.protocol.name = dubbo
jboot.rpc.dubbo.protocol.port = 0
1
2
3
4
5
6
7

至此,一个简单的RPC调用就实现了

更多

除了上面的注册中心模式,Jboot还可以直连模式、Motan支持。详情请查看这里 (opens new window)