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治理控制台
治理控制台的次要性能:
- 路由规定
- 动静配置
- 服务降级
- 访问控制
- 权限调整
- 负载平衡