Dubbo 入门

背景

Dubbo是由阿里开源的一款分布式服务框架(RPC),那么问题来了,RPC是啥?

先来个场景,在日常开发过程中,每个程序猿都有自己的分工,但往往某个程序猿负责的接口需要其他猿提供接口,而且这个接口与自己待开发的接口分别属于不同系统,那这个时候怎么办呢?这个就是RPC框架诞生的场景。

说了那么多,那什么是RPC呢?下面是参考网上资料写的一个大概概念,了解一下即可。

RPC(Remote Procedure Call Protocol):即远程过程调用,两台服务器A、B,分别部署不同的应用a,b。当A服务器想要调用B服务器上应用b提供的方法的时候,由于不在一个内存空间,不能直接调用,因此需要通过网络来表达调用的语义传达调用的数据。 说白了,就是你在你的机器上写了一个程序,我这边是无法直接调用的,这个时候就出现了一个远程服务调用的概念。

image-20220220224709269

上面就是RPC的大致语义,目前市面上开源的RPC框架有DubboThriftSpring Cloud等。

Dubbo简介

Dubbo是国内最早开源的 RPC 框架,由阿里于 2011 年末对外开源。该框架每天为阿里内部2000+个服务提供大于30亿次访问量支持,由此可见该框架的稳定性。

Dubbo架构

image-20220220231504620

上面这张图应该很熟悉吧,常见于各种Dubbo的介绍文章中,图都快糊了。Dubbo 的架构主要包含四个角色:

  • Consumer 是服务消费者
  • Provider 是服务提供者
  • Registry 是注册中心
  • Monitor 是监控系统

具体的交互流程大致如下:

  • Provider端启动服务,向注册中心注册自己的服务;
  • Consumer 端通过注册中心获取到 Provider 节点后,通过 Dubbo 的客户端 SDK Provider 建立连接,并发起调用;
  • Provider 一端通过 Dubbo 的服务端 SDK 接收到 Consumer 的请求,处理后再把结果返回给 Consumer
  • Consumer拿到结果后,结束调用;

QuickStart

网上有关SpringBoot整合Dubbo的文章很多,我就不废话了,这里贴一下github的链接,有兴趣可以看一下。

Springboot2.0 整合 Dubbo入门

image-20220221171412777

需要注意的是,为了后期方便研究Dubbo源码,这里不使用SpringBoot自带的Logback,而是使用SLF4J日志框架,同时将日志的级别更改为DEBUg级别,如下所示:
image-20220328152920042

image-20220328152353639

image-20220328152508002

posted @ 2022-02-21 15:23  Reecelin  阅读(60)  评论(0编辑  收藏  举报