一、概念
1. 是什么:dubbo是一个RPC分布式服务框架
2. 能做什么(功能):
a. 高性能和透明化的调用远程方法
b. 服务自动注册与发现
c. 容错与负载均衡
3. dubbo底层默认使用netty通信框架,netty底层使用NIO,NIO是socket编程的优化,socket编程基于TCP,TCP=IP+Port;也可以使用mina通信框架
4. dubbo默认使用单一长连接,即阻塞调用;但也支持异步调用,返回一个Future对象,没有返回值的接口可以做成异步调用
5. 支持的协议:dubbo://,http://等
6. 适合小数据量大并发的场景
7. 使用的序列化框架:hession(默认框架), fastjson, dubbo
8. hession序列化框架是一个采用二进制格式传输的服务框架
9. 上线不影响旧版本:version, group
二、节点角色
1. provider 服务提供者
2. consumer 服务消费者
3. registry 注册中心
4. monitor 监控中心,可以使用界面化的dubbo admin控制台,进行服务降级、权重调整等
5. container 服务运行容器
6. 对应的节点架构图和注册发现服务的流程图
三、dubbo注册中心
1. 一般使用Zookeeper注册中心,用来维护服务的地址列表,进行集中的数据管理,使消费方和提供方透明;也可以使用Multicast注册中心、Redis注册中心等
2. 当zookeeper挂掉,dubbo对老的服务还能继续通信,因为已经把服务信息缓存在了本地;但是新服务不可以通信
3. 同一个服务,可以发布在多个注册中心里
4. 服务失效踢出,基于zookeeper的临时节点原理
四、集群容错方案
1. 读操作:使用Failover失败转移策略,失败自动切换
2. 写操作:使用Failfast快速失败策略,失败立即报错
五、dubbo的负载均衡策略
1. 随机
2. 轮询
3. 最少调用数量
4. 一致性hash,相同参数的请求总是发到同一个提供者
六、dubbo的安全机制
1. 通过Token令牌防止消费者绕过注册中心直接连接提供者,在注册中心管理授权
2. 白名单和黑名单机制
七、dubbox在dubbo的基础上做了扩展,支持restful调用
八、dubbo调用超时
1. 默认重试两次
2. 可以设置retry=0
参考:
https://www.cnblogs.com/hantianwei/p/6338006.html