基于dubbo环境 开发新项目流程

以下本地开发阶段,第一步  是下载dubbo   windows也是支持的     下载后解压进入bin     ./ startus.cmp -m standalone

 浏览器查看:http://127.0.0.1:8848/nacos

第二步然装  安装DubboAdmin

DubboAdmin是阿里巴巴管理提供的管理控制台,可以实现服务査询,详情展示,服务测试等功能。借由DubboAdmin可以更好的帮助开发人员对服务进行管理和监控

我这儿也有提前下载,进入目录就可以改配置,然后maven 运行一下,以下是操作的经过

安装 DubboAdmin

 

DubboAdmin 的源代码托管在 GitHub 上,可以通过以下步骤进行安装和运行:
    1. 下载代码
      使用以下命令克隆 DubboAdmin 的代码:
git clone https://github.com/apache/dubbo-admin.git
    1. 修改配置
      dubbo-admin-server/src/main/resources/application.properties 文件中指定注册中心地址。
    2.  

    3. 构建项目
      执行以下命令进行构建:
mvn clean package -Dmaven.test.skip=true

 

启动服务
有以下两种启动方式: 
1     使用 Maven 命令启动:
 
mvn --projects dubbo-admin-server spring-boot:run

 

 

  2    使用打包后的 JAR 文件启动:

cd dubbo-admin-distribution/target
java -jar dubbo-admin-0.1.jar
    1. 访问界面
      打开浏览器访问以下地址:
      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 的话,参看另一个文档

 

posted @ 2025-04-12 10:02  稷下元歌  阅读(21)  评论(0)    收藏  举报