Dubbo 介绍

Apache Dubbo |ˈdʌbəʊ| 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。

在云原生时代,Dubbo 相继衍生出了 Dubbo3、Proxyless Mesh 等架构与解决方案,在易用性、超大规模微服务实践、云原生基础设施适配、安全性等几大方向上进行了全面升级。

官方地址:https://dubbo.apache.org/zh-cn/
文档资料:https://cn.dubbo.apache.org/zh-cn/overview/home/
GitHub:https://github.com/apache/dubbo

为什么选择 Dubbo ?

快速上手,让开发者专注业务开发

多语言 SDK 定义微服务开发范式,通信协议灵活切换,支持 HTTP/2、gRPC、REST、Thrift、TCP 等任一协议。

服务治理,实时监测、管控集群状态

内置服务发现、负载均衡、路由等流量管控策略,提供全链路追踪、限流降级、一致性事务、日志、Metrics、服务网格、Admin 可视化控制台等一站式微服务生态。

超高性能,面向百万实例集群设计

阿里巴巴每年双十一数百万实例、万亿次调用跑在 Dubbo 之上,从设计之初即将低延迟、高吞吐量、可伸缩性放在第一位。

企业级解决方案,多年企业生产环境检验

用户群体遍布各行各业,典型代表包括工商银行、携程、海尔、金蝶、云厂商 (阿里云、腾讯云、华为云) 等,2022年 Dubbo3 在阿里巴巴已全面升级 HSF2 实现了框架统一。

核心特性

  • 灵活部署模式
    一键拉起服务治理体系,屏蔽底层跨平台的微服务基础设施复杂度,支持虚拟机、Docker、Kubernetes、服务网格等多种部署模式。

  • 服务发现
    Dubbo 提供了高性能、可伸缩的服务发现机制,面向百万集群实例规模设计,默认提供 Nacos、Zookeeper 等注册中心适配并支持自定义扩展。

  • 服务注册
    Dubbo Rust依赖第三方注册中心组件来协调服务发现过程,支持的注册中心: Nacos、Zookeeper。

  • 流量管控
    Dubbo 提供的基于路由规则的流量管控策略,可以帮助实现全链路灰度、金丝雀发布、按比例流量转发、动态调整调试时间、设置重试次数等服务治理能力。

  • 通信协议
    支持 HTTP/2、gRPC、TCP、REST 等任意通信协议,切换协议只需要修改一行配置,支持单个端口上的多协议发布。

  • 多语言 SDK
    提供 Java、Golang、Rust、Node.js、Python 等多语言 SDK 实现,支持基于 IDL 的跨语言服务定义和基于 Protobuf、Json 的数据编码

  • 可扩展性
    一切皆可扩展,通过扩展 (Filter、Router、Service Discovery、Configuration 等) 自定义调用、管控行为,适配开源微服务生态。

  • 可观测性
    多维度的可观测指标(Metrics、Tracing、Accesslog)帮助了解服务运行状态,Admin 控制台、Grafana 等帮助实现数据指标可视化展示。

  • 认证鉴权
    支持基于 TLS 的传输链路认证与加密通信以及基于请求身份的权限校验,帮助构建零信任分布式微服务体系。

  • 服务网格(Service Mesh)
    灵活的数据面 (Proxy & Proxyless) 部署形态支持,无缝接入 Istio 控制面治理体系。

  • 丰富生态
    一站式微服务生态适配:注册中心、网关、限流降级、负载均衡、一致性事务、异步消息、Tracing 等。

作者:Jeebiz  创建时间:2023-12-19 12:27
最后编辑:Jeebiz  更新时间:2023-12-22 13:34