CI/CD-微服务-Dubbo

为解决单体应用因规模扩大而导致的开发效率低、部署困难等问题,微服务架构应运而生。

微服务、Dubbo介绍:

  • 分布式:把多台功能不同的主机通过网络连接形成的一个系统(互相协作)
    • 微服务架构正是分布式系统的一种重要实践形式
  • 集群:把多台功能相同的主机通过网络连接形成的一个系统(可替换使用)
微服务

一种将大型应用拆分成一组小型、独立服务的软件架构风格。

每个服务都专注于一个特定的业务功能,比如“用户管理”、“订单处理”或“商品推荐”。

  • 优点:独立部署与运行、独立数据存储、去中心化、可扩展性
  • 挑战:服务发现、网络通信、数据一致性等
 Dubbo

 一个高性能、轻量级的开源Java RPC(远程过程调用)框架,

由阿里巴巴开发并贡献给Apache基金会,是解决微服务间通信和治理问题的利器。

(适合高并发、低延迟的核心交易系统。)

与微服务关系:

用微服务的理念把系统拆成了很多小块,

Dubbo就是帮助这些小块高效、可靠地互相“打电话”沟通的工具,

并且能帮你管理好这些“电话本”(服务发现)和“通话策略”(负载均衡)。

Spring Cloud

依托Spring Boot生态,提供了一套完整的、开箱即用的微服务解决方案,

通信基于HTTP,通用性好,但性能上弱于Dubbo。

(适合需要快速搭建完整微服务体系的团队。)

 

Dubbo核心流程

image

  • 服务容器启动
    • Dubbo 的 ServiceConfig 对象加载和解析 XML/注解配置
    • 完成配置后,Provider会启动并暴露服务(打开端口监听,准备好接收请求)
  • 服务注册与发现
    • Provider向注册中心注册自己提供的服务;
    • Consumer向注册中心订阅需要的服务;
    • 注册中心将Provider地址列表返回给Consumer,Consumer缓存地址列表(注册中心不可用时也能通过本地缓存地址调用)。
  • 负载均衡
    • 由Dubbo 的 LoadBalance 组件实现,默认提供了加权随机、轮询、最少活跃调用数等多种策略;
    • Consumer基于负载均衡机制,选出一台发起调用。
  • 远程调用
    • 执行过程:客户端通过Netty等高性能网络框架发起请求,服务端接受处理请求,最终找到目标实现类(如 UserServiceImpl)的方法并调用,结果再原路返回;
    • 超时:Consumer发起调用时,如果指定时间内未收到响应,会触发超时。接着,Dubbo 会根据配置的重试次数,向另一台 Provider 重新发起请求;
    • 监控中心:异步记录每次调用的成功/失败、耗时、并发数等统计信息。
posted @ 2026-06-24 15:28  FengweiTech  阅读(13)  评论(0)    收藏  举报