SpringBoot+Dubbo+Nacos 开发实战教程
文章目录
- 环境准备
- dubbo简介
- Nacos环境准备
- Nacos与dubbo整合
- 项目管理规范
- dubbo整合nacos案例
- 创建公共接口模块
- 创建服务提供者模块
- 创建服务消费者模块
- 服务调用测试
- 本文小结
环境准备
dubbo简介
dubbo核心节点之间的调用关系
节点说明

调用关系说明
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
Nacos环境准备
启动nacos,本文使用的是nacos1.4.3版本
打开nacos的控制面板

Nacos与dubbo整合
为了方便大家理解,这里写出对应的生产方、消费方 Demo 代码,以及使用的注册中心。
项目管理规范
springboot,netflix和cloud alibaba之间有版本之间的对应关系,本文选择的版本如下
dubbo和cloud alibaba之间有版本之间的对应关系,本文选择的版本如下

为了后续方便使用SpringCloud Alibaba
进行开发,首先创建一个pom类型的父项目,主要用于项目技术栈版本管理,创建一个maven项目,名称为spring-cloud-alibaba-example
,去除src文件,修改pom文件
4.0.0 ah.wideth spring-cloud-alibaba-example 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-parent 2.3.12.RELEASE pom UTF-8 1.8 Hoxton.SR12 2.2.7.RELEASE org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import com.alibaba.cloud spring-cloud-alibaba-dependencies ${com-alibaba-cloud.version} pom import 登录后复制
dubbo整合nacos案例
本文的案例是在上文nacos开发实例的基础之上继续编写的。下面开始创建我们的项目,贴上我的目录结构。
模块说明
public-api
公共接口模块(接口),供服务消费者和服务提供者调用。dubbo-provider
服务提供者模块(接口实现类),引入了public-api
模块dubbo-consumer
服务消费者模块(controller
),引入了public-api
模块- 消费者和提供者通过公共接口模块进行rpc远程调用
父工程pom文件
4.0.0
spring-cloud-alibaba-example
ah.wideth
1.0-SNAPSHOT
public-api
dubbo-provider
dubbo-consumer
dubbo-nacos-example
dubbo-nacos-example
duboo与nacos整合的父工程
pom
1.8
utf-8
UTF-8
2.7.13
1.4.1
com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery
nacos-client
com.alibaba.nacos
org.apache.dubbo
dubbo-spring-boot-starter
${dubbo.version}
org.apache.dubbo
dubbo-registry-nacos
${dubbo.version}
com.alibaba.nacos
nacos-client
${nacos.version}
com.alibaba.spring
spring-context-support
1.0.11
org.apache.dubbo
dubbo
${dubbo.version}
org.springframework
spring
javax.servlet
servlet-api
log4j
log4j
登录后复制