一、Dubbo 简介与架构

一、Dubbo 简介与架构

1.1 应用架构演进过程

  • 单体应用:JEE、MVC
  • 分布式应用:SOA、微服务化
    1.2 Dubbo 简介
  • 一种分布式 RPC 框架,对专业知识(序列化/反序列化、网络、多线程、设计模式、性能优化等)进行了更高层的抽象和封装,提供开箱即用的特性。核心设计原则:微内核+插件体系
  • Dubbo 架构'
    *
      • Provider启动时会向注册中心把自己的元数据注册上去(比如服务IP和端口等),Consumer在启动时从注册中心订阅(第一次订阅会拉取全量数据)服务提供方的元数据,注册中心中发生数据变更会推送给订阅的Consumero在获取服务元数据后,Consumer可以发起RPC调用,在RPC调用前后会向监控中心上报统计信息(比如并发数和调用的接口)。
  • Dubbo 特性
    • 面向接口代理的高性能RPC调用
    • 服务自动注册与发现
    • 运行期流量调度
    • 智能负载均衡
    • 高度可扩展能力
    • 可视化的服务治理与运维
  • 不同架构区别
    • 单一应用架构:当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本
    • 垂直应用架构:将应用拆成互不相干的几个应用
      • 分布式服务架构
      • 流动计算架构
        1.3 总体大图
  • Dubbo 总体分层:业务层(Biz)、RPC层、Remote层
  • Dubbo 核心组件
    • 首先,服务器端(服务提供者)在框架启动时,会初始化服务实例,通过Proxy组件调用具体协议(Protocol ),把服务端要暴露的接口封装成Invoker (真实类型是AbstractProxylnvoker),然后转换成Exporter,这个时候框架会打开服务端口等并记录服务实例到内存中,最后通过Registry把服务元数据注册到注册中心
      h2
相关推荐
Lei活在当下6 小时前
【现代 Android APP 架构】09. 聊一聊依赖注入在 Android 开发中的应用
java·架构·android jetpack
一尘之中7 小时前
【架构人生】一种“低耦合、高内聚”的处世哲学
架构·ai写作
Ryan今天学习了吗13 小时前
💥不说废话,带你上手使用 qiankun 微前端并深入理解原理!
前端·javascript·架构
Xの哲學14 小时前
Linux eMMC子系统深度解析:从硬件协议到内核实现
linux·网络·算法·架构·边缘计算
小马哥编程14 小时前
【软考架构】案例分析-瘦客户端C/S架构
运维·服务器·架构
二宝15216 小时前
黑马商城day8-ES01
分布式·微服务·架构
深度学习机器19 小时前
RAG的另一种思路,基于文档树结构的推理型检索
人工智能·算法·架构
深度学习机器19 小时前
Agent架构新方向?Claude Skills工作原理解析
人工智能·算法·架构
Wang's Blog20 小时前
Nestjs框架: gRPC微服务通信及安全实践全解析
安全·微服务·架构·nestjs
常先森20 小时前
【解密源码】 RAGFlow 切分最佳实践- naive parser 语义切块(pdf 篇)
架构·llm·agent