在线预览:http://naotu.baidu.com/file/2fa2533cecb78d0ff8c66459c980edfd?token=ac60101c33bef2e8
xmind 文件下载:
下载
** 禁止转载!**
#内容概述
架构演变
单一应用架构
垂直应用架构
分布式服务架构
流动计算架构
配置
dubbo:service/:服务配置
dubbo:reference/:引用配置
dubbo:protocol/:协议配置
dubbo:application/:应用配置
dubbo:module/:模块配置
dubbo:registry/:注册中心配置
dubbo:monitor/:监控中心配置
dubbo:provider/:提供方的缺省值
dubbo:consumer/:消费方缺省配置
dubbo:method/:方法配置
dubbo:argument/:用于指定方法参数配置
架构
角色
Provider: 暴露服务的服务提供方
Consumer: 调用远程服务的服务消费方
Registry: 服务注册与发现的注册中心
Monitor: 统计服务的调用次调和调用时间的监控中心
Container: 服务运行容器
流程说明
服务容器负责启动,加载,运行服务提供者
服务提供者在启动时,向注册中心注册自己提供的服务
服务消费者在启动时,向注册中心订阅自己所需的服务
注册中心返回服务提供者地址列表给消费者
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用
服务消费者和提供者定时每分钟发送一次统计数据到监控中心
连通性
注册中心负责服务地址的注册与查找
监控中心负责统计各服务调用次数,调用时间等
服务提供者向注册中心注册其提供的服务
服务消费者向注册中心获取服务提供者地址列表
注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外
注册中心通过长连接感知服务提供者的存在
注册中心和监控中心全部宕机 消费者在本地缓存了提供者列表
注册中心和监控中心都是可选的,服务消费者可以直连服务提供者
集群容错
- Failover Cluster(故障转移)
- Failfast Cluster(快速失败)
- Failsafe Cluster(失败安全)
- Failback Cluster(失败自动恢复)
- Forking Cluster(并行调用多个服务器)
- Broadcast Cluster(广播调用所有提供者)
负载均衡
- Random LoadBalance
- RoundRobin LoadBalance
- LeastActive LoadBalance
- ConsistentHash LoadBalance
线程模型
<dubbo:protocol name="dubbo" dispatcher="all" threadpool="fixed" threads="100" />
Dispatcher
- all、
- direct、
- message、
- executio、
- connection
ThreadPool
- fixed
- cache
- limited
特性
这里是列表文本 绕过注册中心直接调用生产者
只订阅
只注册
静态服务
不同服务可使用不同协议。如rmi、dubbo协议等
多注册中心
服务分组
多版本
在低压力时间段,先升级一半提供者为新版本
再将所有消费者升级为新版本
然后将剩下的一半提供者升级为新版本
分组聚合
支持JSR303参数验证
结果缓存
lru:基于最近最少使用原则删除多余缓存,保持最热的数据被缓存
threadlocal:当前线程缓存
jcache:与JSR107集成,可以桥接各种缓存实现
隐式传参
并发控制,限制执行某方法的线程数量
连接控制,限制服务器端接受的连接不能超过某值
令牌验证