# 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 ``` ![image-20210117141650146](./README.assets/image-20210117141650146.png) ## 父依赖 ### 版本 > [版本查看](https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E) ![image-20210117142046479](./README.assets/image-20210117142046479-1610864958861.png) ![image-20210117142057383](README.assets/image-20210117142057383.png) ### 父依赖 > ! 一定不要加这个依赖, 会冲突 > > ``` > > 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); } } ``` ![image-20210117141829661](README.assets/image-20210117141829661.png)