依赖配置
引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.6</version>
</dependency>
这里解释一下为什么不用 Spring-Cloud-Alibaba 的 Dubbo 依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
<version>2021.1</version>
</dependency>
这个依赖主要是负责处理兼容 Feign 的 Dubbo 代理配置 通过 Feign 做服务发现 项目中 如果统一使用 Dubbo 则不需要使用这个依赖 在后续版本 官方也宣布此模块从主分支移除 况且 Dubbo 3.0 已经支持 基于应用服务的发现机制 故完全没必要与 Feign 做兼容处理
配置服务
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
配置Nacos bootstrap.yml
server:
port: 9201
spring:
main:
allow-circular-references: true
application:
name: ruoyi-system
---
spring:
cloud:
nacos:
server-addr: localhost:8848
discovery:
group: DEFAULT_GROUP
config:
group: DEFAULT_GROUP
在Nacos放置服务对应的配置 ruoyi-system.yml Nacos默认读取与服务名同名的配置文件
dubbo:
application:
logger: slf4j
metadataType: remote
register-mode: instance
service-discovery:
migration: FORCE_APPLICATION
protocol:
name: dubbo
port: -1
registry:
address: nacos://localhost:8848
group: DEFAULT_GROUP
consumer:
validation: true
timeout: 3000
check: false
scan:
base-packages: com.ruoyi.**.dubbo
编写业务接口 编写提供者接口实现 注意 注解为 @DubboService 标注为dubbo的service服务实现
编写消费者 消费接口
启动服务 观察现象
Dubbo 2.X 是以接口为注册发现 Dubbo 3.X 是以服务为注册发现 启动完成后 进入Nacos 观察 这里可以看到 服务的元数据 已经指向了 元数据中心的地址 这样我们再去元数据中心找到 revision 标注的元数据配置 这里是以应用为单位存储的元数据配置信息 里面包括一些服务的配置 与 服务提供的接口等
测试Dubbo服务调用
|