【dubbo 第一篇章】认识一下 dubbo

一、介绍

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

二、Dubbo 能做什么?

1、微服务编程范式和工具

Dubbo 支持基于 IDL 或者语言特定方式的服务定义,提供多种形式的服务调用形式(同步、异步、流式等)。

2、高性能 RPC 通信

Dubbo 帮助解决微服务组件之间的通信问题,提供了基于 HTTP、HTTP/2、TCP 等多种高性能通信协议实现,并支持序列化协议扩展,在实现上解决了网络连接管理、数据传输等基础问题。

3、微服务监控和治理

Dubbo 官方提供的服务发现、动态配置、负载均衡、流量路由等基础组件可以很好的帮助解决微服务基础实践的问题。除此之外,还可以用 Admin 控制台监控微服务状态,通过周边生态完成限流降级、数据一致性、链路追踪。

三、Dubbo 架构

在这里插入图片描述

上面的图是 Dubbo 的工作原理图,从抽象架构上分为两层:服务治理抽象控制面Dubbo数据面

  • 服务治理控制面:服务治理控制面不是特指注册中心类的单个具体组件,而是对 Dubbo 治理体系的抽象表达。控制面包含协调服务发现的注册中心、流量管控策略、Dubbo Admin 控制台等。
  • Dubbo 数据面:数据面代表集群部署的所有的 Dubbo 进程,进程之间通过 RPC 协议实现数据交换,Dubbo 定义了微服务应用开发和调用规范以及实现数据传输编码工作。
    • 服务消费者:发起业务调用的进程。
    • 服务提供者:接收业务调用的进程。

四、Dubbo 数据面

从数据层面看,Dubbo 解决了微服务实践中的以下问题:

  • 作为 服务开发框架 约束了微服务定义、开发和调用的规范,定义了服务治理流程及适配模式。
  • 作为 RPC通信协议实现 解决服务间数据传输的编解码问题。

五、服务开发框架

Dubbo 在微服务应用开发框架之上抽象了一套 RPC 服务定义、暴露、调用和治理的编程范式。

在这里插入图片描述

Dubbo 作为服务开发框架包含的具体内容如下:

  • RPC 服务定义、开发范式:支持 IDL 定义服务。比如 Java Interface 定义服务。
  • RPC 服务发布和调用API: 支持同步、异步、流式调用服务调用编程模式,还支持请求上线文 API、设置超时时间等。
  • 服务治理策略、流程和适配方式:作为服务框架数据面,Dubbo 定义了服务地址发现、负载均衡策略、基于规则的流量路由、监控指标采集等服务治理抽象,并适配到特定的产品实现。

六、通信协议

Dubbo 从设计上不限于任何一款特定的通信协议,HTTP/2、REST、GRPC、Hessian2 等几乎所有的主流通信协议。

七、服务治理抽象

Dubbo 核心的功能有以下几点:

  • 地址发现:具备高性能、支持大规模集群、服务级元数据配置等优势。
  • 负载均衡:默认提供加权随机、加权轮询、最少活跃请求数优先、最短响应时间优先、一致哈希和自适应负载策略等。
  • 流量路由:支持流量控制服务调用的流量分布和行为,基于这些规则可以实现基于权重的比例流量分发、灰度验证、金丝雀发布、按请求参数的路由、同区域优先、超时配置、重试、限流降级等能力。
  • 链路追踪:支持请求的链路追踪。
  • 可观测性:实现所有请求的状态。
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值