Dubbo框架整体认知

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 该文章主要介绍了Dubbo框架的整体认知,包括Dubbo的概念、产生的背景、解决的问题、架构以及功能特性等。

Dubbo是什么?

Dubbo是Apache开源基金会顶级项目,最开始是由阿里巴巴开源并贡献给Apache。他的本质是一个高性能分布式Rpc服务调用框架。最新版本已经到了3.0,具备应用级服务注册和发现的能力。笔者在工作中使用的版本是2.7.2版本,最近关于Dubbo系列的文章将基于Dubbo 2.7.2版本分析。

下面是官网首页的介绍:

正如上图所述,随着Dubbo的演进迭代,Dubbo不再只是一个简单rpc框架,更是一个服务治理的生态系统,兼具远程服务调用,服务容错和负载均衡,服务自动注册发现等服务治理能力,Dubbo还是一个扩展性极强的框架,因为他有一套灵活的扩展点机制,支持任意Dubbo组件插件式的扩展。

Dubbo出现的背景

任何技术都不是凭空出现的,它肯定是为了解决某一类问题而产生,在中国互联网的不断发展中,系统越来越复杂,以前的单体应用已经无法支撑业务正常发展下去,因此分布式系统逐渐演化而来,分布式系统中一定会存在远程通信的功能,笔者工作中接触过webservice,http等远程通信方式,这些通信技术只有最基本的通信能力,在复杂的分布式系统中使用和业务功能耦合性极高,并且没有任何服务治理能力,比如负载均衡,服务自动发现注册等,因此Dubbo就出现了,Dubbo支持http,webservice,rest,redis等通信协议,Dubbo不仅支持各种通信协议,还具备自动服务注册和发现的能力,使得分布式应用实现远程通信更加简单高效。

Dubbo需要解决的问题

1、不同公司,不同系统,采用不同分布式通信协议,因此统一的远程通信模型抽象也是很有必要。

2、随着分布式服务越来越多,服务的地址信息越难维护,因此自动管理服务地址的能力迫在眉睫。

3、分布式服务越来越多,服务器的资源情况各不相同,哪些服务可以分配更多的请求处理也是一个非常关键的问题,分布式服务负载均衡的能力也必须具备。

4、随着越来越多的服务调用,服务治理能力也需要提升,比如服务容错,服务缓存,服务调用情况等等。

Dubbo架构

Dubbo框架包括服务提供者Provider,服务注册中心Registry,服务消费者Consumer,服务监控中心Monitor组成。

1、服务提供者Provider注册服务信息到服务注册中心Registry

2、服务消费者订阅并从注册中心Registry获取服务提供者信息

3、服务消费者根据从服务注册中心获取到的服务提供者信息发起远程调用,这是Dubbo最基本也是最核心的能力

4、服务提供者和服务消费者定期向服务监控中心Monitor上报状态。

Dubbo功能特性

Dubbo最基本的能力是远程调用

同时还支持下列或更多功能特性:

1、服务自动注册发现

2、支持多协议远程服务调用

3、多注册中心

4、服务容错

5、客户端Consumer负载均衡

6、服务扩展点

7、服务泛化调用

Dubbo采用的技术

1、Netty用于远程通信

2、反射和动态代理技术实现面向接口远程调用

3、序列化和反序列化技术实现远程请求和响应的解析处理

4、注册中心实现服务信息的缓存

总结

Dubbo是分布式系统治理的比较经典的一项技术,学习Dubbo可以了解分布式系统调用的原理,以及分布式治理的相关手段,如果能学好Dubbo,对于学习其他分布式中间件框架非常有帮助,后续的文章笔者将围绕Dubbo核心功能进行剖析,帮助读者系统的学习Dubbo,了解Dubbo,同时也将笔者学习心得进行记录和沉淀。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
6月前
|
XML Dubbo Java
【Dubbo3高级特性】「框架与服务」服务的异步调用实践以及开发模式
【Dubbo3高级特性】「框架与服务」服务的异步调用实践以及开发模式
157 0
|
6月前
|
负载均衡 Dubbo Java
Dubbo 3.x:探索阿里巴巴的开源RPC框架新技术
随着微服务架构的兴起,远程过程调用(RPC)框架成为了关键组件。Dubbo,作为阿里巴巴的开源RPC框架,已经演进到了3.x版本,带来了许多新特性和技术改进。本文将探讨Dubbo 3.x中的一些最新技术,包括服务注册与发现、负载均衡、服务治理等,并通过代码示例展示其使用方式。
359 9
|
6月前
|
监控 负载均衡 Dubbo
Dubbo 框架揭秘:分布式架构的精髓与魔法【一】
Dubbo 框架揭秘:分布式架构的精髓与魔法【一】
232 0
|
6月前
|
Dubbo Java 应用服务中间件
微服务框架(十六)Spring Boot及Dubbo zipkin 链路追踪组件埋点
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文第一部分为调用链、OpenTracing、Zipkin和Jeager的简述;第二部分为Spring Boot及Dubbo zipkin 链路追踪组件埋点
|
6月前
|
JSON Dubbo Java
微服务框架(二十)Dubbo Spring Boot 生产就绪特性
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Dubbo Spring Boot 生产就绪特性
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
2月前
|
Dubbo Java 应用服务中间件
微服务框架Dubbo环境部署实战
微服务框架Dubbo环境部署的实战指南,涵盖了Dubbo的概述、服务部署、以及Dubbo web管理页面的部署,旨在指导读者如何搭建和使用Dubbo框架。
223 17
微服务框架Dubbo环境部署实战
|
2月前
|
负载均衡 Dubbo NoSQL
Dubbo框架的1个核心设计点
Java领域要说让我最服气的RPC框架当属Dubbo,原因有许多,但是最吸引我的还是它把远程调用这个事情设计得很有艺术。
Dubbo框架的1个核心设计点
|
2月前
|
负载均衡 监控 Dubbo
分布式框架-dubbo
分布式框架-dubbo
|
2月前
|
XML 负载均衡 监控
分布式-dubbo-简易版的RPC框架
分布式-dubbo-简易版的RPC框架