# RPC调用
这里采用Nacos作为服务发现中心,采用Dubbo组件进行Rpc调用。一般情况下,Jboot RPC 调用需要以下几个步骤:
- 定义接口
- 编写实现类
- 启动 Server(Provider) 暴露服务
- 启动客户端、通过 RPC 调用 Server 提供的服务
# 定义公共接口
公共接口需要被 供调用端与服务端引用
public interface BlogService {
public String findById();
public List<String> findAll();
}
1
2
3
4
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
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
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
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
2
3
4
5
6
7
至此,一个简单的RPC调用就实现了
更多
除了上面的注册中心模式,Jboot还可以直连模式、Motan支持。详情请查看这里 (opens new window)