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。

2022坚持学习,​一起进步。大家的关注和点赞是我最大的动力。

Dubbo框架整体认知相关推荐

  1. dubbo框架设计介绍

    简介 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成.它提供了三大核心能力:面向接口的远程方法调用,智 ...

  2. SpringCloud微服务:基于Nacos组件,整合Dubbo框架

    源码地址:GitHub·点这里 || GitEE·点这里 一.基础组件简介 1.Dubbo框架 Dubbo服务化治理的核心框架,之前几年在国内被广泛使用,后续由于微服务的架构的崛起,更多的公司转向微服 ...

  3. SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用

    一.Dubbo框架简介 1.框架依赖 图例说明: 1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层 ...

  4. SpringBoot集成Dubbo框架

    1. Dubbo框架 Dubbo框架是一个高性能.重量轻.基于java的RPC框架.Dubbo提供了三个关键功能,包括基于接口的远程调用.容错和负载平衡,以及自动服务注册和发现.Dubbo可以和Spr ...

  5. 详细总结:分布式, Nginx Linux Redis 微服务 Dubbo框架 Quartz定时任务

    目录 1.1 概念 2.1分布式概念 2.2分布式项目拆分 2.3分布式项目总结 2.3 分布式事务 3.1 Nginx配置文件介绍 3.2 实现负载均衡(Tomcat高可用) 3.3 常见面试题 4 ...

  6. Marco's Java【Dubbo 之手写Dubbo框架实现远程调用】

    前言 关于Dubbo入门的网上教程也特别多,因此我没有专门出关于Dubbo的系列博文(主要呢- 也是在忙些工作上的事儿),用Dubbo特别简单,但是想要把Dubbo学好,学精还得花费不少时间的,特别是 ...

  7. 如何开启Dubbo框架内部的日志?

    为什么80%的码农都做不了架构师?>>>    欢迎加入DUBBO交流群:259566260 这里将对如何在自己的项目里面开启dubbo框架自己的日志,并对输出的日志进行控制.在讲这 ...

  8. 【华为云技术分享】云图说 | Dubbo框架应用也可以使用Istio服务网格

    Dubbo作为一款RPC 框架,在国内有一定的存量用户.如何让企业级微服务应用使用原生的能力,通过Kubernetes和Istio进行部署运行和监控,是很多企业开发和运维团队非常关心的问题. 应用服务 ...

  9. 开课吧:Dubbo的整体架构设计有哪些分层?

    Dubbo框架设计共划分了10层,最上面的Service层是留给实际使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层.图中左边为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位 ...

最新文章

  1. 计算机三级四级机考,2017年全国计算机等级考试四级上机编程试题一
  2. python利器的使用-Python数据科学利器
  3. linux mysql设置数据库utf_设置mysql数据库 utf8
  4. 4.4.6 数组也能无锁:AtomicIntegerArray
  5. rails db 查询优化_如何优化查询以解决Rails中常见的可伸缩性瓶颈
  6. ASP.NET Identity “角色-权限”管理 2
  7. java中的string类型_Java中的字符串类型(String)
  8. 类与对象- 课后作业1
  9. 计算机科学家壁纸,科幻宇宙星球CG壁纸
  10. oracle执行计划更新,请教update和delete的执行计划
  11. python编写一个汽车类_python实现汽车管理系统
  12. 秩为 1 的矩阵的一些性质
  13. 微信小程序UI库组件库合集
  14. 使用ceres库将经纬度坐标GCJ02到WGS84精确转换
  15. $‘\r‘: 未找到命令的问题解决
  16. 光纤收发器tx和rx的区别?
  17. 压缩文件压缩率是什么意思
  18. 致老友-有时候我词不达意 但我真的很开心生活有你
  19. GitHub 近 70K 星,命令行的艺术!
  20. ios的qq分享接入流程

热门文章

  1. 上传jar包到maven公共远程中央仓库
  2. 计算机绘图需要素描基础吗,学建筑设计一定要有绘画基础吗 学画画需要从什么基础开始?...
  3. 锅炉设备如何实现远程报警监控
  4. 通过TSS软件栈使用TPM——获取并改变TPM寄存器-学习笔记1
  5. 综合布线详细方案设计
  6. 倪妮成为FILA高级运动时装代言人;玩具反斗城开启“暑期玩乐季” | 知消
  7. ESL3.3 子集的选择学习笔记(最优集选择,向前向后逐步选择等方法)
  8. 从表单中提交图片到mysql_如何在Python框架Flas中将图像文件从表单上传到数据库...
  9. Python简单的音乐播放器1
  10. img srcset sizes 的作用