分布式服务框架Dubbo
一、Dubbo概述
Dubbo是阿里巴巴公司开源的一个高性能的优秀服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡以及服务自动注册和发现。
1、远程方法调用:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型、序列化以及“请求-响应”模式的信息交换方式。
2、集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持、软负载均衡、失败容错、地址路由、动态配置等集群支持。
3、自动注册/发现:基于注册中心目录服务,使服务消费方能动态地查找服务提供方,使地址透明,使服务提供方可以平滑地增加或减少机器。
二、Dubbo原理
Dubbo的底层框架原理如图18-2所示。
Registry是服务注册与发现的注册中心,Provider是暴露服务的服务提供方,Consumer是调用远程服务的服务消费方,Monitor是统计服务的调用次数和调用时间的监控中心,Container服务运行容器。Dubbo简单的调用关系如下:
(0)服务容器(Container)负责启动、加载、运行服务提供者(Provider)。
(1)服务提供者(Provider)在启动时,向注册中心(Registry)注册自己提供的服务。
(2)服务消费者(Consumer)在启动时,向注册中心(Registry)订阅自己所需的服务。
(3)注册中心(Registry)返回服务提供者地址列表给消费者(Consumer),如果有变更,注册中心(Registry)将基于长连接推送变更数据给消费者(Consumer)。
(4)服务消费者(Consumer)从提供者地址列表中,基于软负载均衡算法选一台提供者进行调用,如果调用失败,就再选另一台调用。
(5)服务消费者(Consumer)和提供者(Provider),在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据监控中心(Monitor)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理