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