Dubbo问题
发布日期:2021-05-14 00:23:39 浏览次数:13 分类:精选文章

本文共 1095 字,大约阅读时间需要 3 分钟。

RPC与Dubbo全解析

什么是RPC?

RPC,即远程程序调用,是一种通过网络实现从远端计算机调用程序的方法,与底层网络协议无关。常见的RPC技术包括 Dubbo、gRPC、RMI 等。

为什么使用Dubbo?

Dubbo 是一个强大ถาน的应用级服务框架,主要优势包括:

  • 透明化远程调用:由于 Dubbo 把底层通信细节封装了,开发者只需调用本地方法即可实现跨进程通信,显著提高开发效率。
  • 负载均衡与容错:内网可以通过 Dubbo 实现软负载均衡,替代硬件负载均衡设备,降低成本并避免单点故障。
  • 服务自动注册与发现:通过服务注册中心,服务提供者和消费者无需手动配置地址,注册中心可自动根据接口名查找服务地址。
  • 集成与配置化:无缝兼容 Spring 框架,便于进行配置化服务发布,提升开发效率。
  • Dubbo调用流程与工作原理

  • 服务容器初始化:服务容器初始化时,通过 main 函数创建 Spring 上下文,根据配置文件将服务发布到指定协议中。
  • 服务注册:服务提供者启动后会连接到服务注册中心并发布自身信息,供其他消费者查找。
  • 服务订阅:消费者在启动时会连接到注册中心并订阅所需服务。
  • 路由与负载均衡:通过路由策略选择最优服务提供者,若出现故障自动切换到其他可用服务。
  • 统计与监控:消费者在内存中累计调用数据,每分钟定时发送统计信息到监控中心,便于质量控制和优化。
  • Dubbo框架设计的10层

    Dubbo框架设计清晰地划分为10层,涵盖了从接口到底层传输的各个环节:

  • 服务接口层(Service):定义服务接口与实现,与业务逻辑直接相关。
  • 配置层(Config):通过 ServiceConfig 和 ReferenceConfig 类,支持直接配置或通过 Spring 元言解析。
  • 服务代理层(Proxy):生成Stub 和 Skeleton � حاج器,以 ServiceProxy 为中心实现透明化代理。
  • 服务注册层(Registry):管理服务地址的注册与发现,实现服务透明化查找。
  • 集群层(Cluster):处理多个服务提供者的路由与负载均衡,并桥接注册中心。
  • 监控层(Monitor):统计 RPC 调用次数与时间,向监控中心报告数据。
  • 远程调用层(Protocol):封装 RPC 调用逻辑,管理Invoker 的生命周期。
  • 信息交换层(Exchange):处理请求响应模式,支持同步与异步调用。
  • 网络传输层(Transport):抽象 MINA 和 Netty 为统一接口,管理数据传输。
  • 数据序列化层(Serialize):负责数据的编码与解码,支持可复用序列化工具。
  • 上一篇:使用Dubbo需要使用的jar包以及配置文件
    下一篇:Linux安装JDK

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月27日 13时49分38秒