一、Dubbo架构图
Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)
Dubbo框架设计一共划分了10个层,而最上面的Service层是留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层。图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口, 位于中轴线上的为双方都用到的接口。
下面,结合Dubbo官方文档,我们分别理解一下框架分层架构中,各个层次的设计要点:
服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。
配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心,可以直接new配置类,也可以通过spring解析配置生成配置类。
服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton,以ServiceProxy为中心,扩展接口为ProxyFactory。
服务注册层(Registry):封装服务地址的注册与发现,以服务URL为中心,扩展接口为RegistryFactory、Registry和RegistryService。可能没有服务注册中心,此时服务提供方直接暴露服务。
集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心,扩展接口为Cluster、Directory、Router和LoadBalance。将多个服务提供方组合为一个服务提供方,实现对服务消费方来透明,只需要与一个服务提供方进行交互。
监控层(Monitor):RPC调用次数和调用时间监控,以Statistics为中心,扩展接口为MonitorFactory、Monitor和MonitorService。
远程调用层(Protocol):封将RPC调用,以Invocation和Result为中心,扩展接口为Protocol、Invoker和Exporter。Protocol是服务域,它是Invoker暴露和引用的主功能入口,它负责Invoker的生命周期管理。Invoker是实体域,它是Dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。
信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心,扩展接口为Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer。
网络传输层(Transport):抽象mina和netty为统一接口,以Message为中心,扩展接口为Channel、Transporter、Client、Server和Codec。
数据序列化层(Serialize):可复用的一些工具,扩展接口为Serialization、 ObjectInput、ObjectOutput和ThreadPool。
二、Dubbo核心组件
服务定义
服务是围绕服务提供方和服务消费方的,服务提供方实现服务,而服务消费方调用服务。
服务注册
对于服务提供方,它需要发布服务,而且由于应用系统的复杂性,服务的数量、类型也不断膨胀;对于服务消费方,它最关心如何获取到它所需要的服务,而面对复杂的应用系统,需要管理大量的服务调用。而且,对于服务提供方和服务消费方来说,他们还有可能兼具这两种角色,即既需要提供服务,有需要消费服务。
通过将服务统一管理起来,可以有效地优化内部应用对服务发布/使用的流程和管理。服务注册中心可以通过特定协议来完成服务对外的统一。Dubbo提供的注册中心有如下几种类型可供选择:
Multicast注册中心
Zookeeper注册中心
Redis注册中心
Simple注册中心
服务监控
无论是服务提供方,还是服务消费方,他们都需要对服务调用的实际状态进行有效的监控,从而改进服务质量。
远程通信与信息交换
远程通信需要指定通信双方所约定的协议,在保证通信双方理解协议语义的基础上,还要保证高效、稳定的消息传输。Dubbo继承了当前主流的网络通信框架,主要包括如下几个:
Mina
Netty
Grizzly
服务调用
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
协议支持
Dubbo支持多种协议,如下所示:
Dubbo协议
Hessian协议
HTTP协议
RMI协议
WebService协议
Thrift协议
Memcached协议
Redis协议
相关推荐
【标题】"dubbo框架的代码" Dubbo是阿里巴巴开源的一款高性能、轻量级的Java分布式服务框架,它旨在提高微服务架构中的服务治理效率,促进服务间的通信和协同。Dubbo的核心特性包括服务发现、服务调用、负载均衡、...
【阿里分布式框架dubbo学习】 Dubbo是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它专注于服务之间的远程调用,旨在提高系统间的解耦和可扩展性。Dubbo的核心组件包括服务提供者(Provider)、服务消费...
### Dubbo框架详解 #### 一、Dubbo框架概述 Dubbo是由阿里巴巴开源的一款高性能、轻量级的微服务框架,旨在提供一个基于Java的分布式服务解决方案。它可以帮助开发者更轻松地构建、部署和管理复杂的应用程序和服务...
【Dubbo框架技术开发文档】 Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java RPC框架,它专注于服务治理,提供了服务注册、发现、调用、负载均衡、容错、监控等一系列完整的服务治理方案。本文档将深入探讨Dubbo...
《深入理解阿里巴巴Dubbo框架:最新版解析与实践》 阿里巴巴的Dubbo框架,作为一款高性能、轻量级的开源Java RPC框架,自发布以来便备受业界关注,尤其在电商领域,它已成为构建大型分布式系统不可或缺的一部分。...
《Dubbo框架源码解析深度探索》 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,已经成为Java世界中分布式服务的重要选择。本文将深入探讨Dubbo的核心概念、设计模式以及源码实现,旨在帮助读者理解...
为了应对这种发展趋势,一个有效的服务治理系统变得至关重要,而Dubbo正是这样的一个系统,用于确保架构能够有条不紊地演进。 在互联网发展初期,网站流量较小,此时采用单一应用架构,将所有功能部署在一起,可以...
【标题】"Dubbo框架设计原则ppt"与【描述】"dubbo框架设计Java并发ppt"揭示了本次讨论的核心——Dubbo框架的设计原则以及在Java并发环境中的应用。这两个主题对于理解和优化分布式服务架构至关重要。 首先,让我们...
Dubbo框架是阿里巴巴开源的一款高性能、轻量级的服务治理框架,它主要应用于分布式服务的开发、部署和管理。在使用Dubbo时,我们经常会遇到XML配置文件中的标签无法被识别的问题,这通常是因为缺少了对相关XML ...
【Dubbo框架搭建详解】 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java RPC框架,旨在简化分布式系统开发,实现服务的透明调用。它提供了丰富的服务治理功能,包括服务注册与发现、负载均衡、容错机制、监控等...
淘宝分布式开源框架,dubbo框架。应用比较广泛。
阿里的微服务框架dubbo使用教程.zip 主流的微服务框架有spring cloud和阿里的dubbo 今次介绍的是阿里的dubbo微服务框架 内容包括: 注解 注册 消费者customer 生产者provider 广播 group version动态调用 路由 MVC
Dubbo是阿里巴巴开源的分布式服务化治理框架(微服务框架),久经阿里巴巴电商平台的大规模复杂业务的高并发考验,到目前为止Dubbo仍然是开源界中体系最完善的服务化治理框架,因此Dubbo被国内大量的的互联网公司和...
Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理框架,主要用于实现分布式服务。它提供了服务注册、服务发现、调用链路监控、熔断和限流等高级功能,使得微服务架构得以实现。在本项目中,Dubbo作为一个服务提供...
阿里微服务框架dubbo教程.zip 1.dubbo的作用 2.安装 3.监控中心dubbo-admin 4.SpringMVC项目中使用Dubbo 各节点的功能 SPI Service Provider Interface服务发现机制 dubbo+zookeeper搭建HA集群 ...
Apache Dubbo 3.0.7 是一个高性能、轻量级的开源Java RPC框架,它由阿里集团贡献并维护,现已成为Apache顶级项目。Dubbo的主要目标是提供一种简单、高效的服务发现和服务治理方案,使得分布式系统开发变得更加便捷。...
Dubbo是中国阿里巴巴公司开源的一款高性能、轻量级的Java服务治理框架,它主要为企业级应用提供RPC(远程过程调用)服务。这个压缩包文件包含了关于Dubbo分布式框架的学习资料和实例,对于深入理解并掌握Dubbo有极大...
在Dubbo框架中,Zookeeper常被用作服务注册与发现的中心节点。在案例中,我们使用的是zookeeper-3.5.3-beta版本,这代表我们需要先搭建Zookeeper环境,确保服务提供者和消费者能正确地注册和查找服务。 接下来,...
Java SpringCloud 微服务与Nacos组件整合Dubbo框架,是一种现代企业级应用程序设计的常见实践。这种整合允许开发者利用Dubbo的优秀服务治理能力,同时享受到SpringCloud微服务架构的灵活性和便捷性。 首先,让我们...
1、dubbo入门教程 基础篇教学视频 高级篇教学视频 PPT源码 2、dubbo 进阶 dubbo的高级特征、集群,负载均衡、直连开发模式和API详解以及资料和源码 3、dubbo分布式项目实战 springmvc+dubbo项目 商场系统 数据交换...