Spring整合Dubbo
# Spring整合Dubbo
导入pom依赖,并配置yml,包括扫描包scan.base-packages(包下所有的rpc接口都会注册到服务中),指明服务提供方和消费者通信的端口protocal.port,消费者和提供方的连接方式registry.address。
spring整合dubbo注解:
- @Service/@DubboService:提供方通过该注解进行服务发现注册,首先将扫描到的类对象作为Spring的Bean对象添加到容器中管理,同时生成dubbo服务接口的实现Bean注册到服务中心。
- @Reference:消费者用来指定要调用dubbo中的哪个服务,包括指明url指明服务提供方的地址绕过注册中心发起调用(直接走直连),interfaceClass指明服务的接口类,然后dubbo会从注册中心/工厂找到并注入该服务。
- @EnableDubbo:扫描所有@Service的服务实现类加载到Spring容器,并暴露出来。同时扫描所有dubbo配置类。
dubbo三种连接方式:
注册中心,提供者向注册中心注册自己提供的服务,然后消费者向注册中心订阅服务
dubbo: application: name: Lottery version: 1.0.0 registry: address: zookeeper://192.168.200.200:2181 protocol: name: dubbo port: 20880 scan: base-packages: com.Last.lottery.rpc1
2
3
4
5
6
7
8
9
10
11直连,@Reference(url="")指定提供方的协议+地址,消费者直接到指定需要的服务的 url 获取服务。便于测试开发。
dubbo: registry: address: N/A1
2
3广播
dubbo: registry: address: multicast://224.5.6.7:12341
2
3
实践
服务提供方需要提供一个RPC模块,其中封装服务的请求对象和响应对象,以及服务接口,服务接口不需要在模块里面实现,可以在SpringBoot其它模块实现(门面模式),并发RPC模块打包。
服务调用方需要导入RPC模块jar包,并声明服务接口,使用注解指明服务地址。
编辑 (opens new window)
上次更新: 2023/12/15, 15:49:57