在 Spring Boot 中集成 Nacos 和 Dubbo 实现服务调用,需要以下步骤:
1. 添加依赖
在你的 Spring Boot 项目的 pom.xml
文件中添加以下依赖:
xml
org.apache.dubbo dubbo-spring-boot-starter 2.7.8 com.alibaba.nacos nacos-discovery-spring-boot-starter 0.2.7 org.apache.dubbo dubbo 2.7.82. 配置服务提供者
在服务提供者的 application.properties
或 application.yml
文件中添加以下配置:
yaml
应用配置
spring.application.name=dubbo-provider
Nacos 配置
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
Dubbo 配置
dubbo.scan.base-packages=com.example.dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port=-1
dubbo.registry.address=nacos://127.0.0.1:8848
定义服务接口和实现类:
java
public interface HelloService {
String sayHello(String name);
}
@Service // 注意这是 Dubbo 的 @Service 注解
public class HelloServiceImpl implements HelloService {
@Override
public String sayHello(String name) {
return "Hello, " + name + “!”;
}
}
3. 配置服务消费者
在服务消费者的配置文件中添加以下配置:
yaml
应用配置
spring.application.name=dubbo-consumer
Nacos 配置
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
Dubbo 配置
dubbo.scan.base-packages=com.example.dubbo
dubbo.registry.address=nacos://127.0.0.1:8848
在消费者的 Spring Boot 应用中引用服务:
java
@RestController
public class HelloController {
@Reference // 注意这是 Dubbo 的 @Reference 注解
private HelloService helloService;
@GetMapping("/hello")
public String hello(@RequestParam String name) {
return helloService.sayHello(name);
}
}
4. 启动服务
启动 Nacos 服务端,然后启动服务提供者和服务消费者的 Spring Boot 应用。服务消费者将能够通过 Dubbo 调用服务提供者的服务。
注意事项
- 确保你的 Nacos 服务端已经启动,并且服务地址配置正确。
dubbo.protocol.port=-1
表示让 Dubbo 自动分配端口。dubbo.scan.base-packages
配置项用于指定 Dubbo 的服务接口和实现类所在的包路径。@Service
和@Reference
注解分别用于服务提供者和消费者。
通过以上步骤,你可以在 Spring Boot 应用中集成 Nacos 和 Dubbo,实现服务注册、发现和调用。