Dubbo 入门
背景
Dubbo是由阿里开源的一款分布式服务框架(RPC
),那么问题来了,RPC
是啥?
先来个场景,在日常开发过程中,每个程序猿都有自己的分工,但往往某个程序猿负责的接口需要其他猿提供接口,而且这个接口与自己待开发的接口分别属于不同系统,那这个时候怎么办呢?这个就是RPC
框架诞生的场景。
说了那么多,那什么是RPC
呢?下面是参考网上资料写的一个大概概念,了解一下即可。
RPC(Remote Procedure Call Protocol):即远程过程调用,两台服务器A、B,分别部署不同的应用a,b。当A服务器想要调用B服务器上应用b提供的方法的时候,由于不在一个内存空间,不能直接调用,因此需要通过网络来表达调用的语义传达调用的数据。 说白了,就是你在你的机器上写了一个程序,我这边是无法直接调用的,这个时候就出现了一个远程服务调用的概念。
上面就是RPC
的大致语义,目前市面上开源的RPC
框架有Dubbo
、Thrift
、Spring Cloud
等。
Dubbo简介
Dubbo
是国内最早开源的 RPC 框架,由阿里于 2011 年末对外开源。该框架每天为阿里内部2000+个服务提供大于30亿次访问量支持,由此可见该框架的稳定性。
Dubbo架构
上面这张图应该很熟悉吧,常见于各种Dubbo
的介绍文章中,图都快糊了。Dubbo 的架构主要包含四个角色:
Consumer
是服务消费者Provider
是服务提供者Registry
是注册中心Monitor
是监控系统
具体的交互流程大致如下:
Provider
端启动服务,向注册中心注册自己的服务;Consumer
端通过注册中心获取到Provider
节点后,通过Dubbo
的客户端SDK
与Provider
建立连接,并发起调用;Provider
一端通过Dubbo
的服务端SDK
接收到Consumer
的请求,处理后再把结果返回给Consumer
;Consumer
拿到结果后,结束调用;
QuickStart
网上有关SpringBoot
整合Dubbo
的文章很多,我就不废话了,这里贴一下github的链接,有兴趣可以看一下。
需要注意的是,为了后期方便研究Dubbo
源码,这里不使用SpringBoot
自带的Logback
,而是使用SLF4J
日志框架,同时将日志的级别更改为DEBUg
级别,如下所示:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?