Young's blog Young's blog
首页
Spring
  • 前端文章1

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Young

首页
Spring
  • 前端文章1

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Dubbo入门
    • Dubbo SPI 详解
    • Dubbo SPI的自适应扩展原理
    • Dubbo的6 种扩展机制
    • Dubbo面试题
    • Dubbo
    andanyang
    2023-04-11
    目录

    Dubbo入门

    # 1 什么是 Dubbo

    Apache Dubbo 是一款高性能的 Java RPC 框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开 源 Java RPC 框架,可以和 Spring 框架无缝集成。

    提供了三大核心能力:

    • 面向接口的远程方法调用;
    • 可靠、智能的容错和负载均衡;
    • 服务自动注册和发现能力。

    # 2. Dubbo 处理流程

    总体架构dubbo-architecture

    # 节点角色说明
    节点 角色说明
    Provider 暴露服务的服务提供方
    Consumer 调用远程服务的服务消费方
    Registry 服务注册与发现的注册中心
    Monitor 统计服务的调用次数和调用时间的监控中心
    Container 服务运行容器
    # 调用关系说明

    虚线: 代表异步调用

    实线:代表同步访问

    蓝色虚线: 是在启动时完成的功能

    红色虚线: 是程序运行中执行的功能

    1. 服务容器负责启动,加载,运行服务提供者。
    2. 服务提供者在启动时,向注册中心注册自己提供的服务。
    3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
    4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
    5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
    6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

    # 3. ZooKeeper 注册中心搭建

    dubbo 启动还需要依赖注册中心,这里我们使用 ZooKeeper。为了方便,我们在这里只是启动最简单的单实例 ZK。

    ZooKeeper 安装参考【ZooKeeper】集群安装与配置 (opens new window)

    # 4.官方 Demo

    下载地址 https://github.com/apache/dubbo-samples (opens new window)

    Dubbo 为我们提供了三种非常基础的示例程序,在 dubbo-demo 模块下。

    .  // apache/dubbo-samples/1-basic/dubbo-samples-spring-boot
    ├── dubbo-samples-spring-boot-interface       // 共享 API 模块
    ├── dubbo-samples-spring-boot-consumer        // 消费端模块
    └── dubbo-samples-spring-boot-provider        // 服务端模块
    
    1
    2
    3
    4

    如上所示,共有 3 个模块,其中 interface 模块被 consumer 和 provider 两个模块共同依赖,存储 RPC 通信使用的 API 接口。

    image-20230411090415926

    # 5. 官网

    更多教程参考官网,官网教程已经很详细了 [https://cn.dubbo.apache.org/zh-cn/]

    编辑 (opens new window)
    上次更新: 2024/04/19, 08:52:45
    Dubbo SPI 详解

    Dubbo SPI 详解→

    最近更新
    01
    idea 热部署插件 JRebel 安装及破解,不生效问题解决
    04-10
    02
    spark中代码的执行位置(Driver or Executer)
    12-12
    03
    大数据技术之 SparkStreaming
    12-12
    更多文章>
    Theme by Vdoing | Copyright © 2019-2024 Young | MIT License
    浙ICP备20002744号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式