Dubbo3学习笔记-基本概念

2023-09-17 18:02:44 浏览数 (2)

了解Dubbo基本概念

看一下云原生基金会对他的描述: https://landscape.cncf.io/?selected=dubbo

image-20230917135723314image-20230917135723314

Apache Dubbo is a high-performance, java based, open source RPC framework.

Dubbo 是一款基于Java的高性能 RPC 框架。

那么什么是RPC呢?

来自Wiki:https://en.wikipedia.org/wiki/RPC

分布式计算中,远程过程调用(英语:Remote Procedure Call,RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一个地址空间(通常为一个开放网络的一台计算机)的子程序,而程序员就像调用本地程序一样,无需额外地为这个交互作用编程(无需关注细节)。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。

当我们在讨论Dubbo的时候,一定是迈入了分布式的大门。当各个系统分开后,通信方式成为了一个很重要的话题。首先,他有一定的通信协议和格式,比如TCPHTTPSocket等作为协议,JSONXMLProtocol Buffers确定消息结构。其次,序列化和反序列化,然后还有通信安全,容错,负载均衡等问题。

这样一套需求下来,如果只是发送Http请求,显得有点捉襟见肘。

发展历程

2011年,Dubbo开源,由阿里巴巴的 B2B 团队主力,它的一出现填补了国产PRC的空白,一发布就被广泛采用。

但好景不长,2013年,B2B退市,团队被合并,Dubbo几乎不再维护。但由于占有了很大的使用率,一直很火热。一直到2017年8月,维护重启。并在2018年2月加入Apache 孵化器,一年的时间成为顶级项目。

Dubbo发展历程Dubbo发展历程

主要功能

Dubbo功能Dubbo功能
  • 微服务开发:支持多语言、多环境部署、多种治理能力
  • 服务发现:依赖第三方Nacos、Consul、Zookeeper等实现
service-discoveryservice-discovery
  • 负载均衡:内置多种均衡策略,缺省为 weighted random 基于权重的随机负载均衡策略。
  • 流量管控:各种路由规则:条件路由、标签路由、脚本路由、动态配置
  • 通信协议:除了常规的Triple,Dubbo2,还支持第三方,像gRPC、Thrift、REST、JsonRPC、Hessian2
  • 扩展适配:
扩展适配扩展适配
  • 观察服务:例如Admin控制台

Dubbo 3.0 与 云原生

在经历了辉煌,衰败,到重生之后,Dubbo在云原生时代下继续延续光芒。

最大的变革除了RPC的多协议支持,就是应用粒度的服务发现机制,这使得它一些云原生场景也更好适配,一下与主流的Spring Cloud对齐。性能和可伸缩性得到了提升。

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

0 人点赞