Spring Cloud Alibaba 三十一 Dubbo

概述
Apache Dubbo(原名 Dubbo)是阿里巴巴于 2011 年开源的高性能 Java RPC 框架,后来捐赠给 Apache 基金会成为顶级项目。Dubbo 在国内互联网行业有着广泛的应用,常被用于构建大规模分布式服务或微服务体系。下面将介绍 Dubbo 的主要特性、核心组件、典型用法以及常见问题,为你在分布式服务架构中使用 Dubbo 提供一个入门指引。


1. 核心特性

  1. 高性能 RPC

    • 采用单一长连接和 NIO 异步通讯机制,支持多种序列化协议(默认 Hessian、Protobuf 等),在大规模调用场景下具有较高吞吐量和低延迟。
  2. 服务治理

    • Dubbo 提供服务注册中心、负载均衡、服务发现、服务熔断、流量控制等机制,方便在大规模集群里对服务进行统一管理和监控。
  3. 多协议、多语言

    • 支持 Dubbo 协议、REST、HTTP 等多种协议,且提供多语言客户端(Java、Go、Node.js、Python 等),可适配多种技术栈。
  4. 可插拔设计

    • 通过 SPI(Service Provider Interface),Dubbo 各组件(如协议、负载均衡、注册中心等)都可定制或扩展,满足不同行业或业务场景需求。
  5. 可视化运维

    • 配套 Dubbo Admin、Metrics、Tracing 等工具,可在服务治理、监控、日志和调用链追踪方面提供便利。

2. 主要组件与架构

  1. Provider(服务提供者)

    • 暴露服务的应用,Provider 将实现好的接口注册到服务注册中心,等待 Consumer 端调用。
  2. Consumer(服务消费者)

    • 消费远程服务的应用,Consumer 启动时从注册中心获取服务提供者地址列表,并基于负载均衡策略进行 RPC 调用。
  3. Registry(注册中心)

    • 负责服务地址的注册和查找。Provider 在启动时将自身地址注册到注册中心;Consumer 在启动时向注册中心订阅服务地址列表。Dubbo 常用 Zookeeper、Nacos 等作为注册中心。
  4. Monitor(监控中心)

    • 收集和展示服务的调用次数、耗时、失败率等指标,帮助开发者进行运维与调优。
  5. Protocol(通信协议)

    • Dubbo 内置的高性能二进制协议 dubbo://,也支持 REST、gRPC 等,满足不同需求。

架构示意

          ┌───────────┐          ┌───────────┐
          │  Provider │          │  Provider │
          └───────────┘          └───────────┘
                ▲                         ▲
                │  Register               │
                │                         │
       ┌────────────────────┐     ┌────────────────────┐
       │    Registry (ZK)   │     │    Registry (ZK)    │
       └────────────────────┘     └────────────────────┘
                ▼                         ▼
          ┌───────────┐          ┌───────────┐
          │  Consumer │          │  Consumer │
          └───────────┘          └───────────┘
  1. Provider 启动后,向 Registry 注册自身服务信息。
  2. Consumer 启动后,从 Registry 订阅服务地址;Registry 将 Provider 列表推送给 Consumer;
  3. Consumer 通过负载均衡算法选择一个 Provider 发起 RPC 调用。

3. 典型用法

以下为基于 Spring Boot + Dubbo 的简化示例:

3.1 服务提供者 (Provider)

  1. 依赖

    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>3.1.0</version> <!-- 示例,实际版本请对照Dubbo官方 -->
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十方来财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值