# dubbo-demo
**Repository Path**: helltab/dubbo-demo
## Basic Information
- **Project Name**: dubbo-demo
- **Description**: 结合 spring-cloud 和 alibaba-cloud 的 dubbo rpc 调用
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-01-21
- **Last Updated**: 2022-06-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# DUBBO-DEMO
> 结合 spring-cloud 和 alibaba-cloud 的 dubbo rpc 调用
## 部署 nacos 服务
> 下载部署, 以单机模式启动即可
```sh
cd nacos/bin
sh startup.sh -m standalone
```

## 父依赖
### 版本
> [版本查看](https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E)


### 父依赖
> ! 一定不要加这个依赖, 会冲突
>
> ```
>
> org.springframework.boot
> spring-boot-devtools
> true
>
> ```
```xml
4.0.0
pom
org.springframework.boot
spring-boot-starter-parent
2.3.2.RELEASE
com.helltab.cloud
dubbo-demo
0.0.1-SNAPSHOT
dubbo-demo
Demo project for Spring Boot
common
api
1.8
com.alibaba.cloud
spring-cloud-alibaba-dependencies
2.2.3.RELEASE
pom
import
org.springframework.cloud
spring-cloud-dependencies
Hoxton.SR8
pom
import
com.helltab.cloud
common
0.0.1-SNAPSHOT
com.helltab.cloud
api
0.0.1-SNAPSHOT
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-configuration-processor
true
org.projectlombok
lombok
true
com.alibaba.cloud
spring-cloud-starter-dubbo
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
```
## 添加 common 模块
> 用于添加共有的配置
```yml
dubbo:
protocol:
name: dubbo
port: -1
registry:
address: spring-cloud://192.168.2.10
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.2.10:8848
```
## 添加 api 模块
> 用于规范 rpc 调用的方法和行为
## 添加 provider 模块
> 提供 rpc 服务
### 配置
```yml
spring:
application:
name: provider
profiles:
include: common
server:
port: 8881
dubbo:
scan:
base-packages: com.helltab.cloud.provider.rpc
```
### 配置服务
> @DubboService
```java
@DubboService
public class DemoServiceImpl implements DemoService {
@Override
public String invoke(String name) {
return "方法< " + name + " >正在被调用";
}
}
```
## 添加 consumer 模块
> 接收 rpc 服务
### 配置
```yml
spring:
application:
name: consumer
profiles:
include: common
server:
port: 8882
dubbo:
cloud:
subscribed-services: provider
```
### 使用
> @DubboReference(check = false)
>
> 添加 check = false 可以在启动时不检查服务提供者信息
```java
@RestController
@RequestMapping("rpc")
public class DemoController {
@DubboReference(check = false)
DemoService demoService;
@RequestMapping("/test")
public String test(String methodName) {
return demoService.invoke(methodName);
}
}
```
