RPC框架
- RPC:远程过程调用协议
- RPC解释:客户端通过互联网调用远程服务, 但是不知道服务的具体实现, 只知道是服务的功能
- RPC优点:数据的安全性
Dobbo框架
- Dubbo它是一个高性能、分布式、透明化的RPC框架
- 作用: 提供服务自动注册、自动发现高效的服务治理方案
-
Dubbo的架构图: - Provider : 生产者、提供者、服务发布方
- Consumer: 消费者, 服务调用方
- Container : 容器, Dubbo容器 依赖于spring容器
- Registry : 注册中心, 当Container启动时, Registry会把所有的功能列表在Registry中注册
- Monitor : 监听器
- 虚线的异步操作, 实线是同步操作
- 蓝色是启动时完成的功能
- 红色是程序在运行过程中执行的功能
dubbo运行原理
- 1、首先容器启动时就相当于在启动Provider
- 2、启动后会去注册中心(Registry)注册, 注册所有可提供的服务列表(功能列表)
- 3、在consumer启动后去Registry中心注册获取服务列表(功能列表)和Provider的地址进行订阅
- 4、当Provider有了修改之后, 注册中心会把消息推送Consumer(其中使用观察者设计模式(又叫发布订阅模式))
- 5、根据获得Provider的真实地址后, 真实调用Provider功能(在Consumer方使用了代理设计模式.创建一个Provider方类的一个代理对象.通过代理对象获取Provider中真实功能,起到保护Provider真实功能的作用.)
- 6、Consumer和Provider每过一分钟会想Monitor发送消息统计,包括访问次数和访问的频率
dubbo支持的注册中心
- 1、zookeeper
- 优点: 支持集群
- 缺点: 稳定性受限于zookeeper
dubbo支持的协议
- dubbo协议
- 官方推荐协议
- 本质就是使用NIO线程池处理
- 缺点:大文件传输时可能会出现传输失败问题
Zookeeper讲解
- Zookeeper 分布式协调组件.
- 本质一个软件.
- Zookeeper常用功能
- 发布订阅功能.把zookeeper当作注册中心原因.
- 分布式/集群管理功能.