基于dubbo环境 开发新项目流程
以下本地开发阶段,第一步 是下载dubbo windows也是支持的 下载后解压进入bin ./ startus.cmp -m standalone

浏览器查看:http://127.0.0.1:8848/nacos
第二步然装 安装DubboAdmin
DubboAdmin是阿里巴巴管理提供的管理控制台,可以实现服务査询,详情展示,服务测试等功能。借由DubboAdmin可以更好的帮助开发人员对服务进行管理和监控
我这儿也有提前下载,进入目录就可以改配置,然后maven 运行一下,以下是操作的经过
安装 DubboAdmin

-
下载代码
使用以下命令克隆 DubboAdmin 的代码:
git clone https://github.com/apache/dubbo-admin.git
-
修改配置
在dubbo-admin-server/src/main/resources/application.properties文件中指定注册中心地址。 -
![]()
-
构建项目
执行以下命令进行构建:
mvn clean package -Dmaven.test.skip=true

有以下两种启动方式:
mvn --projects dubbo-admin-server spring-boot:run

2 使用打包后的 JAR 文件启动:
cd dubbo-admin-distribution/target java -jar dubbo-admin-0.1.jar
-
访问界面
打开浏览器访问以下地址:http://localhost:880
正式开发
这儿思路是控制层单独一个包 服务层单独一个包 通过dubbo 过程调用
服务层实现为:示例 这儿传统的注解是@service 现在改为@Dubboservice
// 使用 @DubboService 注解将类暴露为 Dubbo 服务 @DubboService public class UserServiceImpl implements UserService { // 这里是实现类的具体逻辑代码 // 例如: @Override public User getUserById(int id) { // 根据用户ID获取用户信息的逻辑 return new User(id, "用户名"); }
如图如示

配置文件 代码为:

server: port: 18081 # 指定应用的端口号 spring: datasource: url: jdbc:mysql://localhost:3306/dubbo-demo?useSSL=false # 数据库连接 URL username: root # 数据库用户名 password: root # 数据库密码 driver-class-name: com.mysql.cj.jdbc.Driver # 数据库驱动类名 application: name: user-provider # 应用名称 logging: level: cn.itcast: debug # 设置 cn.itcast 包的日志级别为 DEBUG pattern: dateformat: HH:mm:ss:SSS # 设置日志时间格式# 配置 Dubbo 提供者
# Dubbo 协议和访问端口
dubbo:
protocol:
name: dubbo # 指定使用的协议类型为 Dubbo
port: 20881 # 指定 Dubbo 服务的端口号
# 注册中心的地址
registry:
address: nacos://127.0.0.1:8848 # 使用 Nacos 作为注册中心
# Dubbo 注解的包扫描
scan:
base-packages: cn.itcast.user.service # 指定 Dubbo 服务的扫描包路径
配置依赖,项目中springboot 需要赖,数据库存依赖和dubbo 无关,这儿不记,这儿只记录最核心依赖,
<!-- Dubbo 的起步依赖 --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.8</version> </dependency> <!-- Dubbo 使用 Nacos 作为注册中心的依赖 --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-registry-nacos</artifactId> <version>2.7.8</version> </dependency>
新项目嘛,肯定要配运行文件
// 导入 Spring Boot 的核心类 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; // 使用 @SpringBootApplication 注解标记这是一个 Spring Boot 应用 @SpringBootApplication public class UserProviderApplication { // 主程序入口 public static void main(String[] args) { // 启动 Spring Boot 应用 SpringApplication.run(UserProviderApplication.class, args); } }
截个图


由于服务层和控制层都需要同样的服务层service 的接口,都要写就会重复,所以建议将这个接口单独封一个包,用来让程序依赖

那儿服务层和控制就不用写接口,

其它注意事项
1.Dubbo的服务暴露与调用
在服务实现类上通过@DubboService暴露服务
在消费者端通过@DubboReference引用服务
2、Dubbo中传输对象
在RPC框架中,往往通过TCP协议进行数据传输
对象需要实现序列化接口Serializable
3、在实际开发中往往将接口和实体类抽取到公共模块
其它事项,开发时第一关掉远程启动检查,因为我们如果开发的时候,不需要远程调用的时候,会强制开启另一个服务端,如果我们在开发期的
话可以通过配置关了这个
第二,dubbo 可以版本管理,灰度发布
高级特性资源:


以下是消费者,就是控制controll 层代码

超时与重试
服务消费者在调用服务提供者的时候发生了阻塞、等待的情形,这个时候,服务消费者会一直等待下去。在某个峰值时刻,大量的请求都在同时请求服务消费者,会造成线程的大量堆积,势必会造成雪崩。dubbo 利用超时机制来解决这个问题(使用timeout属性配置超时时间,默认值1000,单位毫秒)


负载使用,这种情况下是多台主机的时候,消费端在调用的时候可以在参数加配置策略


到止为,一般项目利用dubbo 就是这些了,但是我们如果是 springcloud整合dubbo 的话,参看另一个文档

浙公网安备 33010602011771号