一.简介
1.什么是Dubbo
是由阿里开发的一款高性能、轻量级的Java RPC框架
开源给了Apache,由Apache进行维护
提供了三大核心能力
- 面向接口的远程方法调用
- 智能容错和负载均衡
- 以及服务自动注册和发现
2.RPC
Remote Procedure Call
远程过程调用
这是一种进程间的通信方式
它允许应用程序调用网络上另一个应用程序中的方法
对于服务的调用者而言,不需要了解远程调用的底层细节
3.体系结构
- Container
- 容器
- 实际上指的就是Dubbo
- Provider
- 服务的提供方
- 负责向外提供服务
- 服务的提供方在启动时,需要向Registry中注册自己能够提供的服务
- Registry
- 注册中心
- 接收提供方注册服务、消费者订阅服务
- 会异步的通知消费者,向消费者提供服务
- Consumer
- 服务的消费者
- 消费者在启动时,需要向注册中心订阅自己所需要的服务
- Monitor
- 监控中心
- 统计服务调用的次数与调用的时间
- Consumer与Provider会在内存中累计其调用的次数与时间
- 定时的向监控中心发送统计的数据
- 监控中心根据即时的信息调整策略
4.执行流程
提供者向注册中心注册服务,消费者向注册中心订阅服务
当消费者需要执行远程调用的时候,会从注册中心获取到对应的服务地址进行调用
如果调用失败,重新选择新的地址进行调用
当失败的情况达到了设置的阈值,则会报错