dubbo是啥?
Apache Dubbo 是一款高性能、轻量级的开源 Java 服务框架
dubbo有什么用?
-
面向接口代理的高性能 RPC 调用;
-
服务自动注册与发现;
-
智能负载均衡策略;
-
高度可扩展能力;
-
运行期流量调度;
-
可视化的服务治理与运维;
具体在游戏中,便是实现远程方法的本地调用,让远程调用和本地方法一样丝滑。
dubbo结构是什么样的?
来个官网图
其实看流程图没用,不如看我dubbo系列文章,服务暴露、服务引用整个流程,给你整的明明白白。
dubbo的一生
2011/10/27: 刚出生,阿里巴巴巴宣布 Dubbo 开源。
2012/10/23: 差点夭折,发布最后一个版本 2.5.3 并停止维护更新。
2017/07/31: 起死回生,官方宣布开启重新更新,并会得到重点维护,参考:Dubbo 宣布重新开始维护。
2017/09/07: 发布起死回生的第一个版本:dubbo-2.5.4。
2018/01/08:
1、Dubbo 团队透露 Dubbo 3.0 宣布正式开工
2、发布了 dubbo-2.6.0 版本,主要合并了由当当网开源的 dubbox 项目分支。PS:dubbo停止维护期间,当当网基于 dubbo 开源了dubbox。
2018/01/22: Dubbo Spring Boot 版正式发布:dubbo-spring-boot-starter v1.0.0 公测版。
2018/02/09: Dubbo 通过投票正式进入 Apache 基金会孵化器,更新了 Apache 官方域名,也不再仅限于 Java 语言。
2019/05/20: Apache 软件基金会宣布 Dubbo 正式毕业,成为 Apache 的顶级项目。
2021/06/20: Dubbo3.0来了
所以Dubbo3.0的特性是啥啊
-
应用级服务发现机制;
-
下一代 RPC 协议:Triple;Triple 协议是 Dubbo3 的主力协议,完整兼容 gRPC over HTTP/2,并在协议层面扩展了负载均衡和流量控制相关机制。
-
全新的路由规则;
-
显著提升性能;
-
Kubernetes 服务集成;
注意:Dubbo 核心不再提供第三方 SDK 扩展,需要通过 dubbo-spi-extensions 项目来支持。
目前支持的扩展有:
-
Zookeeper 作为注册中心、元数据报告、配置中心;
-
Nacos 作为注册中心、元数据报告、配置中心;
-
Kubernetes 作为注册中心;
-
Redis 作为元数据报告;
-
Apollo 作为配置中心;
-
Hessian2 和 jdk 作为默认序列化器;
-
Triple 协议支持 Protobuf;
所以到底要怎么学dubbo?
很多人不知道怎么入手学dubbo,只是听过而已,那么该怎么学呢?
首先肯定是看官网啦:dubbo.apache.org/zh/
其次是看源码啦:github.com/apache/dubb…
如果想看代码注释的话可以看我备注的版本:github.com/wiatingpub/…
其次是关注我,我前阵子在公司写了一个服务化中间件,参考的就是dubbo,最近打算在写一个dubbo系列,目前已经写了:
-
服务消费方如何远程调用服务提供方,进度百分之八十
-
SPI,正在写
-
dubbo中的AOP机制,正在写
-
服务治理,正在写
不过都是2.6x系列,3.0的版本后续会写个改动版本的系列出来,有兴趣持续关注。
学完dubbo,可以做一个rpc框架吗?
可以的,看dubbo源码参考相关模型即可,像我们公司的rpc框架,我们主要参考了流程和模型设计,比如invoker模型、cluster、router、provider、consumer、register、proxy层、transport、loadbalance等等,后续我这边会带大家写个rpc,有兴趣持续关注我。
所以dubbo怎么拼?
来,张嘴:达波