乐趣区

关于rpc:分布式RPC服务调用框架选型使用Dubbo实现分布式服务调用

Dubbo 概念

  • Dubbo 是一个高性能, 轻量级的 RPC 分布式服务框架
  • 提供了三外围能力:

    • 面向接口的近程办法调用(@Reference)
    • 智能容错
    • 负载平衡
  • Dubbo 特点: 依照分层的形式来架构, 能够使各个层之间解耦合
  • Dubbo 的角色:

    • 提供方:Provider
    • 生产方:Consumer
    • Dubbo 的提供非常简单的服务模型, 要么是提供方提供服务, 要么是生产方生产服务

      Dubbo 的服务治理

  • 通明近程调用: 调用近程办法就像调用本地办法一样, 只需简略配置, 没有任何 API 侵入
  • 负载平衡机制: Client 端 LB, 在内网代替 F5 等硬件负载均衡器
  • 容错重试机制: 服务 Mock 数据, 重试次数, 超时机制
  • 主动注册发现: 注册核心基于接口名查问服务提供者的 IP 地址, 能够增加和删除服务提供者
  • 性能日志监控: Monitor, 统计服务的调用次数和调用工夫的监控核心
  • 服务治理核心: 路由规定, 动静配置, 服务降级, 访问控制, 权重调整, 负载平衡

    Dubbo 的外围性能

  • Remoting: 近程通信, 提供对多种 NIO 框架形象封装, 包含 ” 同步转异步 ” 和 ” 申请 - 响应 ” 模式的信息替换形式
  • Cluster: 服务框架, 提供基于接口办法的通明近程过程调用, 包含:多协定反对, 软负载平衡, 容错重试, 路由规定, 动静配置 等集群反对
  • Registry: 服务注册核心, 服务主动发现. 基于注册核心目录服务, 使服务生产方能动静地查找服务提供方, 使地址通明, 使服务提供方能够平滑地减少和缩小机器

    通信模型:
    BIO : 同步并阻塞
    NIO : 异步并阻塞
    AIO : 异步非阻塞
    
    通信框架 : netty

    Dubbo 组件角色

    组件角色 阐明
    Provider 裸露服务的服务提供方
    Consumer 调用近程服务的服务生产方
    Registry 服务注册与发现的注册核心
    Monitor 统计服务调用次数和调用工夫的监控核心
    Container 服务运行容器

    组件调用关系阐明

  • 服务容器 Container 负责启动, 加载, 运行服务提供者
  • 服务提供者 Provider 在启动时, 向注册核心注册本人提供的服务
  • 服务消费者 Consumer 在启动时, 向注册核心订阅本人所需的服务
  • 注册核心 Registry 返回服务提供者地址列表给消费者, 如果有变更, 注册核心将基于长连贯推送变更数据给消费者
  • 服务消费者 Consumer 从提供者地址列表中, 基于负载平衡算法, 抉择一台提供者进行调用, 如果调用失败, 再选另一台进行调用
  • 服务消费者 Consumer 和服务提供者Provider, 在内存中累计调用次数和调用工夫, 定时每分钟发送一次统计数据到监控核心

    Dubbo Admin 治理控制台

  • 治理控制台的次要性能:

    • 路由规定
    • 动静配置
    • 服务降级
    • 访问控制
    • 权限调整
    • 负载平衡
退出移动版