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治理控制台

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

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